aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/analyzer/strcpy-3.c
blob: a38f9a7641fed657aff4405e508a03e3ef8324a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string.h>
#include "analyzer-decls.h"

void test_1 (void)
{
  char str[] = "Hello";
  char buf[6];
  char *result = strcpy (buf, str);
  __analyzer_describe (1, result); /* { dg-warning "region_svalue.*?'buf'" } */
  __analyzer_eval (result == buf); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[0] == 'H'); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[1] == 'e'); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[2] == 'l'); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[3] == 'l'); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[4] == 'o'); /* { dg-warning "TRUE" } */
  __analyzer_eval (buf[5] == 0); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[0] == 'H'); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[1] == 'e'); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[2] == 'l'); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[3] == 'l'); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[4] == 'o'); /* { dg-warning "TRUE" } */
  __analyzer_eval (result[5] == 0); /* { dg-warning "TRUE" } */
}