diff options
author | Marek Polacek <polacek@redhat.com> | 2016-04-26 15:01:09 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2016-04-26 15:01:09 +0000 |
commit | b02a5e265db4d32cf1e67ee142bf337c185873ea (patch) | |
tree | 5d1913ddd940a1456084dfda94201452e3e92d4b | |
parent | 2448a956be32d4e9c722ad6a215fbe4feff9318e (diff) | |
download | gcc-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
-rw-r--r-- | gcc/c/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/c/c-decl.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wnested-externs-2.c | 11 |
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'" } */ +} |