aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2018-10-30 18:29:49 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2018-10-30 18:29:49 +0000
commit190facef83142f0b226b72d93abca4ee21347bfa (patch)
treed3d2bc5b9a6a866b4c8419aac91c37fcda2cab36
parent6a6e0926b2477d2d99c92589878b9ced4abeb114 (diff)
downloadgcc-190facef83142f0b226b72d93abca4ee21347bfa.zip
gcc-190facef83142f0b226b72d93abca4ee21347bfa.tar.gz
gcc-190facef83142f0b226b72d93abca4ee21347bfa.tar.bz2
decl.c (grokdeclarator): Use declarator->id_loc in diagnostic about flexible array members.
/cp 2018-10-30 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic about flexible array members. /testsuite 2018-10-30 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/cpp1z/has-unique-obj-representations1.C: Test location too. * g++.dg/ext/flexarray-mangle-2.C: Likewise. * g++.dg/ext/flexarray-mangle.C: Likewise. * g++.dg/ext/flexarray-subst.C: Likewise. * g++.dg/ext/flexary10.C: Likewise. * g++.dg/ext/flexary11.C: Likewise. * g++.dg/ext/flexary14.C: Likewise. * g++.dg/ext/flexary16.C: Likewise. * g++.dg/ext/flexary26.C: Likewise. * g++.dg/ext/flexary27.C: Likewise. * g++.dg/ext/flexary7.C: Likewise. * g++.dg/ext/pr71290.C: Likewise. From-SVN: r265636
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/testsuite/ChangeLog15
-rw-r--r--gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexarray-mangle.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexarray-subst.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary10.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary11.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary14.C2
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary16.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary26.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary27.C4
-rw-r--r--gcc/testsuite/g++.dg/ext/flexary7.C8
-rw-r--r--gcc/testsuite/g++.dg/ext/pr71290.C6
15 files changed, 41 insertions, 21 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index e1167761..75fcc8a 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * decl.c (grokdeclarator): Use declarator->id_loc in diagnostic
+ about flexible array members.
+
2018-10-29 David Malcolm <dmalcolm@redhat.com>
* cp-name-hint.h: New file.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 00e75f0..496ed98 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -12210,7 +12210,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,
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 62a966b..e3fa800 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,18 @@
+2018-10-30 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * g++.dg/cpp1z/has-unique-obj-representations1.C: Test location too.
+ * g++.dg/ext/flexarray-mangle-2.C: Likewise.
+ * g++.dg/ext/flexarray-mangle.C: Likewise.
+ * g++.dg/ext/flexarray-subst.C: Likewise.
+ * g++.dg/ext/flexary10.C: Likewise.
+ * g++.dg/ext/flexary11.C: Likewise.
+ * g++.dg/ext/flexary14.C: Likewise.
+ * g++.dg/ext/flexary16.C: Likewise.
+ * g++.dg/ext/flexary26.C: Likewise.
+ * g++.dg/ext/flexary27.C: Likewise.
+ * g++.dg/ext/flexary7.C: Likewise.
+ * g++.dg/ext/pr71290.C: Likewise.
+
2018-10-30 Paul Koning <ni1d@arrl.net>
* gcc.dg/tree-ssa/attr-alias.c: Skip if no weak support.
diff --git a/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C b/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C
index bca03a1..e50e535 100644
--- a/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C
+++ b/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C
@@ -9,7 +9,7 @@ struct V { int i : INTB * 3 / 4; int j : INTB / 4 + 1; };
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" }
diff --git a/gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C b/gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C
index 3abb407..3d534e8 100644
--- a/gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C
+++ b/gcc/testsuite/g++.dg/ext/flexarray-mangle-2.C
@@ -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.
diff --git a/gcc/testsuite/g++.dg/ext/flexarray-mangle.C b/gcc/testsuite/g++.dg/ext/flexarray-mangle.C
index 658d935..9625459 100644
--- a/gcc/testsuite/g++.dg/ext/flexarray-mangle.C
+++ b/gcc/testsuite/g++.dg/ext/flexarray-mangle.C
@@ -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.
diff --git a/gcc/testsuite/g++.dg/ext/flexarray-subst.C b/gcc/testsuite/g++.dg/ext/flexarray-subst.C
index 6cf03a4..8364a3e 100644
--- a/gcc/testsuite/g++.dg/ext/flexarray-subst.C
+++ b/gcc/testsuite/g++.dg/ext/flexarray-subst.C
@@ -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>
diff --git a/gcc/testsuite/g++.dg/ext/flexary10.C b/gcc/testsuite/g++.dg/ext/flexary10.C
index 4d1ff56..7d71630 100644
--- a/gcc/testsuite/g++.dg/ext/flexary10.C
+++ b/gcc/testsuite/g++.dg/ext/flexary10.C
@@ -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)
diff --git a/gcc/testsuite/g++.dg/ext/flexary11.C b/gcc/testsuite/g++.dg/ext/flexary11.C
index f958cc5..058c1e7d 100644
--- a/gcc/testsuite/g++.dg/ext/flexary11.C
+++ b/gcc/testsuite/g++.dg/ext/flexary11.C
@@ -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 ()
diff --git a/gcc/testsuite/g++.dg/ext/flexary14.C b/gcc/testsuite/g++.dg/ext/flexary14.C
index add150a..cda6635 100644
--- a/gcc/testsuite/g++.dg/ext/flexary14.C
+++ b/gcc/testsuite/g++.dg/ext/flexary14.C
@@ -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)
diff --git a/gcc/testsuite/g++.dg/ext/flexary16.C b/gcc/testsuite/g++.dg/ext/flexary16.C
index 64a9f5d..94eb6c8 100644
--- a/gcc/testsuite/g++.dg/ext/flexary16.C
+++ b/gcc/testsuite/g++.dg/ext/flexary16.C
@@ -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" }
};
};
diff --git a/gcc/testsuite/g++.dg/ext/flexary26.C b/gcc/testsuite/g++.dg/ext/flexary26.C
index af12772..e62e221 100644
--- a/gcc/testsuite/g++.dg/ext/flexary26.C
+++ b/gcc/testsuite/g++.dg/ext/flexary26.C
@@ -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 }
diff --git a/gcc/testsuite/g++.dg/ext/flexary27.C b/gcc/testsuite/g++.dg/ext/flexary27.C
index 9dfa9a2..20c04b4 100644
--- a/gcc/testsuite/g++.dg/ext/flexary27.C
+++ b/gcc/testsuite/g++.dg/ext/flexary27.C
@@ -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 }
diff --git a/gcc/testsuite/g++.dg/ext/flexary7.C b/gcc/testsuite/g++.dg/ext/flexary7.C
index 1b22f21..62d869e 100644
--- a/gcc/testsuite/g++.dg/ext/flexary7.C
+++ b/gcc/testsuite/g++.dg/ext/flexary7.C
@@ -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 =
diff --git a/gcc/testsuite/g++.dg/ext/pr71290.C b/gcc/testsuite/g++.dg/ext/pr71290.C
index e782eb1..7268294 100644
--- a/gcc/testsuite/g++.dg/ext/pr71290.C
+++ b/gcc/testsuite/g++.dg/ext/pr71290.C
@@ -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." }
};