2 /* { dg-options "-fdiagnostics-show-caret" } */
4 struct X
{ int member
; } x
;
5 struct Y
{ struct X
**x
; } y
;
10 struct X
*pointer
= &x
;
12 struct X
**pointerpointer
= &pointer
;
13 int i
= *pointerpointer
->member
; /* { dg-error "'pointerpointer' is a pointer to pointer; did you mean to dereference it before applying '->' to it\\\?" } */
14 /* { dg-begin-multiline-output "" }
15 int i = *pointerpointer->member;
18 { dg-end-multiline-output "" } */
19 int j
= pointer
.member
; /* { dg-error "'pointer' is a pointer; did you mean to use '->'\\\?" } */
20 /* { dg-begin-multiline-output "" }
21 int j = pointer.member;
24 { dg-end-multiline-output "" } */
25 int k
= yp
->x
->member
; /* { dg-error "'yp->x' is a pointer to pointer; did you mean to dereference it before applying '->' to it\\\?" } */
26 /* { dg-begin-multiline-output "" }
27 int k = yp->x->member;
30 { dg-end-multiline-output "" } */