aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2016-04-26 15:01:09 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2016-04-26 15:01:09 +0000
commitb02a5e265db4d32cf1e67ee142bf337c185873ea (patch)
tree5d1913ddd940a1456084dfda94201452e3e92d4b /gcc
parent2448a956be32d4e9c722ad6a215fbe4feff9318e (diff)
downloadgcc-b02a5e265db4d32cf1e67ee142bf337c185873ea.zip
gcc-b02a5e265db4d32cf1e67ee142bf337c185873ea.tar.gz
gcc-b02a5e265db4d32cf1e67ee142bf337c185873ea.tar.bz2
re PR c/70791 (-Wnested-externs prints inconsistent column number)
PR c/70791 * c-decl.c (pushdecl): Pass LOCUS down to warning. * gcc.dg/Wnested-externs-2.c: New test. From-SVN: r235447
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/ChangeLog3
-rw-r--r--gcc/c/c-decl.c3
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/Wnested-externs-2.c11
4 files changed, 19 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 139d770..b59d690 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -8,6 +8,9 @@
(c_parser_switch_statement): Use it.
(c_parser_while_statement): Use it.
+ PR c/70791
+ * c-decl.c (pushdecl): Pass LOCUS down to warning.
+
2016-04-20 Ilya Verbin <ilya.verbin@intel.com>
PR c++/69363
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index f0c677b..16e4250 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -2949,7 +2949,8 @@ pushdecl (tree x)
}
if (scope != file_scope
&& !DECL_IN_SYSTEM_HEADER (x))
- warning (OPT_Wnested_externs, "nested extern declaration of %qD", x);
+ warning_at (locus, OPT_Wnested_externs,
+ "nested extern declaration of %qD", x);
while (b && !B_IN_EXTERNAL_SCOPE (b))
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c4be021..70baf06 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -5,6 +5,9 @@
* gcc.dg/pr67784-4.c: New test.
* gcc.dg/pr67784-5.c: New test.
+ PR c/70791
+ * gcc.dg/Wnested-externs-2.c: New test.
+
2016-04-26 Marc Glisse <marc.glisse@inria.fr>
* gcc.dg/fold-plusmult.c: Adjust.
diff --git a/gcc/testsuite/gcc.dg/Wnested-externs-2.c b/gcc/testsuite/gcc.dg/Wnested-externs-2.c
new file mode 100644
index 0000000..77bed5f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wnested-externs-2.c
@@ -0,0 +1,11 @@
+/* PR c/70791 */
+/* { dg-do compile } */
+/* { dg-options "-Wnested-externs" } */
+
+void
+bar (void)
+{
+ extern int i; /* { dg-warning "14:nested extern declaration of 'i'" } */
+ extern short foo (void); /* { dg-warning "16:nested extern declaration of 'foo'" } */
+ extern struct S *s; /* { dg-warning "20:nested extern declaration of 's'" } */
+}