analyzer: add regression test for leak false positive
Downstream bug report: https://bugzilla.redhat.com/show_bug.cgi?id=1878600 describes a false positive from -Wanalyzer-file-leak seen with gcc 10.2, but which has been fixed in gcc 11. This patch adds the reproducer as a regression test. gcc/testsuite/ChangeLog: * gcc.dg/analyzer/rhbz1878600.c: New test.
This commit is contained in:
parent
35e3f0829d
commit
00adddd656
34
gcc/testsuite/gcc.dg/analyzer/rhbz1878600.c
Normal file
34
gcc/testsuite/gcc.dg/analyzer/rhbz1878600.c
Normal file
@ -0,0 +1,34 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define INI_MAX_LINE 200
|
||||
|
||||
typedef char* (*ini_reader)(char* str, int num, void* stream);
|
||||
|
||||
int ini_parse(const char* filename);
|
||||
|
||||
static int ini_parse_stream(ini_reader reader, void* stream)
|
||||
{
|
||||
char line[INI_MAX_LINE];
|
||||
int max_line = INI_MAX_LINE;
|
||||
while (reader(line, max_line, stream) != NULL)
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ini_parse_file(FILE* file)
|
||||
{
|
||||
return ini_parse_stream((ini_reader)fgets, file);
|
||||
}
|
||||
|
||||
int ini_parse(const char* filename)
|
||||
{
|
||||
FILE* file;
|
||||
int error;
|
||||
|
||||
file = fopen(filename, "r");
|
||||
if (!file)
|
||||
return -1;
|
||||
error = ini_parse_file(file);
|
||||
fclose(file);
|
||||
return error;
|
||||
}
|
Loading…
Reference in New Issue
Block a user