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
|
/* PR middle-end/97189 - ICE on redeclaration of a function with VLA argument
and attribute access
Also verify the right arguments are underlined in the notes.
{ dg-do compile }
{ dg-options "-Wall -fdiagnostics-show-caret" } */
#define RW(...) __attribute__ ((access (read_write, __VA_ARGS__)))
RW (2, 3) void f1 (int n, int[n], int);
/* { dg-warning "attribute 'access \\(read_write, 2, 3\\)' positional argument 2 conflicts with previous designation by argument 3" "warning" { target *-*-* } .-1 }
{ dg-begin-multiline-output "" }
RW (2, 3) void f1 (int n, int[n], int);
^~
{ dg-end-multiline-output "" }
{ dg-message "designating the bound of variable length array argument 2" "note" { target *-*-* } .-6 }
{ dg-begin-multiline-output "" }
RW (2, 3) void f1 (int n, int[n], int);
~~~~^ ~~~~~~
{ dg-end-multiline-output "" } */
RW (2) void f2 (int, int[*], int);
/* { dg-message "previously declared as a variable length array 'int\\\[\\\*]'" "note" { target *-*-* } .-1 }
{ dg-begin-multiline-output "" }
RW (2, 3) void f2 (int, int[], int);
^~~~~
{ dg-end-multiline-output "" } */
RW (2, 3) void f2 (int, int[], int);
/* { dg-warning "argument 2 of type 'int\\\[]' declared as an ordinary array" "warning" { target *-*-* } .-1 }
{ dg-begin-multiline-output "" }
RW (2) void f2 (int, int[*], int);
^~~~~~
{ dg-end-multiline-output "" } */
|