aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.dg/fixits.c
blob: 06c9995d7ec91b9d197d3461bd463d9a62134483 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/* { dg-do compile } */
/* { dg-options "-fdiagnostics-show-caret" } */

struct foo { int x; };
union u { int x; };

/* Verify that we issue a hint for "." used with a ptr to a struct.  */

int test_1 (struct foo *ptr)
{
  return ptr.x; /* { dg-error "'ptr' is a pointer; did you mean to use '->'?" } */
/* { dg-begin-multiline-output "" }
   return ptr.x;
             ^
             ->
   { dg-end-multiline-output "" } */
}

/* Likewise for a ptr to a union.  */

int test_2 (union u *ptr)
{
  return ptr.x; /* { dg-error "'ptr' is a pointer; did you mean to use '->'?" } */
/* { dg-begin-multiline-output "" }
   return ptr.x;
             ^
             ->
   { dg-end-multiline-output "" } */
}

/* Verify that we don't issue a hint for a ptr to something that isn't a
   struct or union.  */

int test_3 (void **ptr)
{
  return ptr.x; /* { dg-error "request for member 'x' in something not a structure or union" } */
/* { dg-begin-multiline-output "" }
   return ptr.x;
             ^
   { dg-end-multiline-output "" } */
}