(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
analyzer/
leak-3.c
       1  #include <stdlib.h>
       2  
       3  /* Reduced from Juliet 1.3's CWE415_Double_Free__malloc_free_char_67a.c
       4     goodG2B which was showing a false leak report in a non-LTO build.  */
       5  
       6  struct s1
       7  {
       8      char * structFirst;
       9  };
      10  void external_fn_1(struct s1 myStruct);
      11  void test_1()
      12  {
      13      char * data;
      14      struct s1 myStruct;
      15      data = (char *)malloc(100*sizeof(char));
      16      if (data == NULL)
      17        exit(-1);
      18      myStruct.structFirst = data;
      19      external_fn_1(myStruct);
      20  } /* { dg-bogus "leak of 'data'" } */
      21  
      22  /* As above, but with padding before the field.  */
      23  
      24  struct s2
      25  {
      26    void *padding;
      27    char *ptr;
      28  };
      29  void external_fn_2(struct s2 myStruct);
      30  void test_2()
      31  {
      32      char * data;
      33      struct s2 myStruct;
      34      data = (char *)malloc(100*sizeof(char));
      35      if (data == NULL)
      36        exit(-1);
      37      myStruct.padding = NULL;
      38      myStruct.ptr = data;
      39      external_fn_2(myStruct);
      40  } /* { dg-bogus "leak of 'data'" } */
      41