V2548. MISRA. The address of an object with local scope should not be passed out of its scope.

This diagnostic rule is based on the software development guidelines developed by MISRA (Motor Industry Software Reliability Association).

Copying an object's address to a pointer/reference with a long lifetime may cause that pointer/reference to become "dangling" after the original object has ceased to exist. This is a case of memory safety violation. Using data referenced by a "dangling" pointer/reference leads to undefined behavior.

First example of non-compliable code:

int& Foo( void )
  int some_variable;
  return some_variable;

Second example of non-compliable code:

#include <stddef.h>
void Bar( int **ptr )
  int some_variable;
  if (ptr != NULL)
    *ptr = &some_variable;

This diagnostic is classified as:

  • MISRA-C-18.6
  • MISRA-CPP-7.5.2

Bugs Found

Checked Projects
Collected Errors
14 526
This website uses cookies and other technology to provide you a more personalized experience. By continuing the view of our web-pages you accept the terms of using these files. If you don't want your personal data to be processed, please, leave this site. Learn More →