aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/analyzer/fopen-1.c
blob: f59d9efd3e1959ea00077b1b069d09bc1348164c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* C only: C++ FE fpermissive already emits an error for initializer
   string too long.
   C++ compatible parts have been moved into c-c++-common/analyzer/fopen-2.c  */

typedef struct FILE FILE;
FILE *fopen (const char *pathname, const char *mode);

FILE *
test_unterminated_pathname (const char *mode)
{
  char buf[3] = "abc";
  return fopen (buf, mode); /* { dg-warning "stack-based buffer over-read" } */
  /* { dg-message "while looking for null terminator for argument 1 \\('&buf'\\) of 'fopen'..." "event" { target *-*-* } .-1 } */
}

FILE *
test_unterminated_mode (const char *filename)
{
  char buf[3] = "abc";
  return fopen (filename, buf);  /* { dg-warning "stack-based buffer over-read" } */
  /* { dg-message "while looking for null terminator for argument 2 \\('&buf'\\) of 'fopen'..." "event" { target *-*-* } .-1 } */
}