blob: d11cc03b36f0dbe15480f77a6c83a68f997fa869 [file] [log] [blame]
#include <stdlib.h>
/* Reduced from Juliet 1.3's CWE415_Double_Free__malloc_free_char_67a.c
goodG2B which was showing a false leak report in a non-LTO build. */
struct s1
{
char * structFirst;
};
void external_fn_1(struct s1 myStruct);
void test_1()
{
char * data;
struct s1 myStruct;
data = (char *)malloc(100*sizeof(char));
if (data == NULL)
exit(-1);
myStruct.structFirst = data;
external_fn_1(myStruct);
} /* { dg-bogus "leak of 'data'" } */
/* As above, but with padding before the field. */
struct s2
{
void *padding;
char *ptr;
};
void external_fn_2(struct s2 myStruct);
void test_2()
{
char * data;
struct s2 myStruct;
data = (char *)malloc(100*sizeof(char));
if (data == NULL)
exit(-1);
myStruct.padding = NULL;
myStruct.ptr = data;
external_fn_2(myStruct);
} /* { dg-bogus "leak of 'data'" } */