===================================================================
@@ -12210,7 +12223,7 @@ grokdeclarator (const cp_declarator *declarator,
/* Do not warn on flexible array members in system
headers because glibc uses them. */;
else if (name)
- pedwarn (input_location, OPT_Wpedantic,
+ pedwarn (declarator->id_loc, OPT_Wpedantic,
"ISO C++ forbids flexible array member %qs", name);
else
pedwarn (input_location, OPT_Wpedantic,
===================================================================
@@ -9,7 +9,7 @@ struct V { int i : INTB * 3 / 4; int j : INTB / 4
struct W {};
struct X : public W { int i; void bar (); };
struct Y {
- char a[3]; char b[]; // { dg-warning "forbids flexible array member" }
+ char a[3]; char b[]; // { dg-warning "19:ISO C\\+\\+ forbids flexible array member" }
};
struct Z { int a; float b; };
struct A { int i : INTB * 2; int j; }; // { dg-warning "exceeds its type" }
===================================================================
@@ -4,7 +4,7 @@
struct A {
int n;
- char a[]; // { dg-warning "forbids flexible array member" }
+ char a[]; // { dg-warning "8:ISO C\\+\\+ forbids flexible array member" }
};
// Declare but do not define function templates.
===================================================================
@@ -4,7 +4,7 @@
struct A {
int n;
- char a[]; // { dg-warning "forbids flexible array member" }
+ char a[]; // { dg-warning "8:ISO C\\+\\+ forbids flexible array member" }
};
// Declare but do not define function templates.
===================================================================
@@ -5,7 +5,7 @@
struct A {
int n;
- char a[]; // { dg-warning "forbids flexible array member" }
+ char a[]; // { dg-warning "8:ISO C\\+\\+ forbids flexible array member" }
};
template <class>
===================================================================
@@ -4,7 +4,7 @@
struct A {
int n;
- int a[]; // { dg-warning "forbids flexible array member" }
+ int a[]; // { dg-warning "7:ISO C\\+\\+ forbids flexible array member" }
};
struct A foo (void)
===================================================================
@@ -4,7 +4,7 @@
struct A {
int n;
- char a[]; // { dg-error "forbids flexible array member" }
+ char a[]; // { dg-error "8:ISO C\\+\\+ forbids flexible array member" }
};
void f ()
===================================================================
@@ -10,7 +10,7 @@ struct A<T[]> { typedef int X; };
template <class T> int foo (T&, typename A<T>::X = 0) { return 0; }
struct B {
- int n, a[]; // { dg-error "forbids flexible array member" }
+ int n, a[]; // { dg-error "10:ISO C\\+\\+ forbids flexible array member" }
};
void bar (B *b)
===================================================================
@@ -12,7 +12,7 @@ struct container
struct incomplete {
int x;
- elem array[]; // { dg-warning "forbids flexible array member" }
+ elem array[]; // { dg-warning "10:ISO C\\+\\+ forbids flexible array member" }
};
};
@@ -27,7 +27,7 @@ struct D: container<T>
{
struct S {
int x;
- typename container<T>::elem array[]; // { dg-warning "forbids flexible array member" }
+ typename container<T>::elem array[]; // { dg-warning "33:ISO C\\+\\+ forbids flexible array member" }
};
};
===================================================================
@@ -2,8 +2,8 @@
// { dg-do compile }
// { dg-options "-Wpedantic" }
-struct S { const char *a; char b[]; }; // { dg-warning "forbids flexible array member" }
-struct T { int a; int b[]; }; // { dg-warning "forbids flexible array member" }
+struct S { const char *a; char b[]; }; // { dg-warning "32:ISO C\\+\\+ forbids flexible array member" }
+struct T { int a; int b[]; }; // { dg-warning "23:ISO C\\+\\+ forbids flexible array member" }
#if __cplusplus >= 201103L
S c[] { "", "" }; // { dg-error "initialization of flexible array member in a nested context" "" { target c++11 } }
// { dg-warning "initialization of a flexible array member" "" { target c++11 } .-1 }
===================================================================
@@ -1,8 +1,8 @@
// PR c++/81922
// { dg-do compile }
-struct S { const char *a; char b[]; }; // { dg-error "forbids flexible array member" }
-struct T { int a; int b[]; }; // { dg-error "forbids flexible array member" }
+struct S { const char *a; char b[]; }; // { dg-error "32:ISO C\\+\\+ forbids flexible array member" }
+struct T { int a; int b[]; }; // { dg-error "23:ISO C\\+\\+ forbids flexible array member" }
#if __cplusplus >= 201103L
S c[] { "", "" }; // { dg-error "initialization of flexible array member in a nested context" "" { target c++11 } }
// { dg-error "initialization of a flexible array member" "" { target c++11 } .-1 }
===================================================================
@@ -5,7 +5,7 @@
struct FlexChar {
int n;
- char a[]; // { dg-warning "forbids flexible array member" }
+ char a[]; // { dg-warning "10:ISO C\\+\\+ forbids flexible array member" }
};
struct FlexChar ac =
@@ -18,7 +18,7 @@ typedef __WCHAR_TYPE__ wchar_t;
struct FlexWchar {
int n;
- wchar_t a[]; // { dg-warning "forbids flexible array member" }
+ wchar_t a[]; // { dg-warning "13:ISO C\\+\\+ forbids flexible array member" }
};
struct FlexWchar awc =
@@ -27,7 +27,7 @@ struct FlexWchar awc =
struct FlexInt {
int n;
- int a[]; // { dg-warning "forbids flexible array member" }
+ int a[]; // { dg-warning "9:ISO C\\+\\+ forbids flexible array member" }
};
// Verify that no warning is issued for the case when a flexible array
@@ -48,7 +48,7 @@ struct FlexInt ai2 =
template <class T>
struct FlexT {
int n;
- T a[]; // { dg-warning "forbids flexible array member" }
+ T a[]; // { dg-warning "7:ISO C\\+\\+ forbids flexible array member" }
};
struct FlexT<char> atc =
===================================================================
@@ -1,17 +1,17 @@
// PR c++/71290 - [6/7 Regression] Flexible array member is not diagnosed
// with -pedantic
-// { dg-do compile }s
+// { dg-do compile }
// { dg-options "-Wall -Wpedantic" }
struct A
{
int i;
- int arr[]; // { dg-warning "forbids flexible array member .arr." }
+ int arr[]; // { dg-warning "7:ISO C\\+\\+ forbids flexible array member .arr." }
};
template <class T>
struct B {
T n;
- T a[]; // { dg-warning "forbids flexible array member .a." }
+ T a[]; // { dg-warning "5:ISO C\\+\\+ forbids flexible array member .a." }
};