diff options
author | Dodji Seketeli <dodji@redhat.com> | 2012-05-22 03:50:26 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2012-05-22 05:50:26 +0200 |
commit | 650dc14a737860cafd34eb4dea683cee87891589 (patch) | |
tree | 3abe77217bb08403458a1264d8b096fc73f1553f /gcc | |
parent | 00d7b6e2c4a5e90177a93cfda6ea401b34dc184f (diff) | |
download | gcc-650dc14a737860cafd34eb4dea683cee87891589.zip gcc-650dc14a737860cafd34eb4dea683cee87891589.tar.gz gcc-650dc14a737860cafd34eb4dea683cee87891589.tar.bz2 |
PR c++/53322 - -Wunused-local-typedefs is not enabled by Wall or Wunused
As the audit trail of this shows, -Wunused-local-typedefs is not
turned on by -Wunused after all. Sigh.
Now that we have the EnabledBy construct for the *.opt files, it's
more precise and concise to use that to make -Wunused-local-typedefs
be triggered by -Wunused.
I have changed the gcc+.dg/warn/Wunused-local-typedefs.C test case to
make it use -Wunused instead of -Wunused-local-typedefs. I had to
adjust it to avoid the warnings due to the other -W* options triggered
by -Wunused there.
While testing the compiler, it turned out that some local typedefs
were not being used when the experimental "Concepts" support is turned
off, in the libstdc++ test suite. I also had to remove some obvious
useless local typedef usage in the fortran front-end. Fixed thus.
Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
gcc/c-family/
PR c++/53322
* c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused).
libstdc++-v3/
PR c++/53322
* include/bits/stl_algobase.h (lower_bound)
(lexicographical_compare): Do not declare unused local typedefs
here when Concepts are turned off.
gcc/fortran/
PR c++/53322
* f95-lang.c (gfc_init_builtin_functions): Remove the unused
typedef builtin_type.
gcc/testsuite/
PR c++/53322
* g++.dg/warn/Wunused-local-typedefs.C: Adjust to use -Wunused
instead of -Wunused-local-typedefs.
From-SVN: r187757
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/c-family/c.opt | 2 | ||||
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/f95-lang.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C | 16 |
6 files changed, 26 insertions, 10 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index 1a84751..b71174d 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,8 @@ +2012-05-22 Dodji Seketeli <dodji@redhat.com> + + PR c++/53322 + * c.opt (Wunused-local-typedefs): Use EnabledBy(Wunused). + 2012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org> * c.opt (--pedantic-errors,-pedantic-errors): Do not handle here. diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 53d9752..0b72d79 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -671,7 +671,7 @@ C ObjC Var(warn_unsuffixed_float_constants) Warning Warn about unsuffixed float constants Wunused-local-typedefs -C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning +C ObjC C++ ObjC++ Var(warn_unused_local_typedefs) Warning EnabledBy(Wunused) Warn when typedefs locally defined in a function are not used Wunused-macros diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 59cfa32..0880b31 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2012-05-22 Dodji Seketeli <dodji@redhat.com> + + PR c++/53322 + * f95-lang.c (gfc_init_builtin_functions): Remove the unused + typedef builtin_type. + 2012-05-14 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/52428 diff --git a/gcc/fortran/f95-lang.c b/gcc/fortran/f95-lang.c index 3f0c303..7250ca2 100644 --- a/gcc/fortran/f95-lang.c +++ b/gcc/fortran/f95-lang.c @@ -641,7 +641,6 @@ gfc_init_builtin_functions (void) #undef DEF_POINTER_TYPE BT_LAST }; - typedef enum builtin_type builtin_type; tree mfunc_float[6]; tree mfunc_double[6]; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 26329cd..5aa7610 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2012-05-22 Dodji Seketeli <dodji@redhat.com> + + PR c++/53322 + * g++.dg/warn/Wunused-local-typedefs.C: Adjust to use -Wunused + instead of -Wunused-local-typedefs. + 2012-05-21 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51184 diff --git a/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C b/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C index 87feb52..4fc8640 100644 --- a/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C +++ b/gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C @@ -1,5 +1,5 @@ // Origin PR c++/33255 -// { dg-options "-Wunused-local-typedefs" } +// { dg-options "-Wunused" } <-- should trigger -Wunused-local-typedefs // { dg-do compile } void @@ -59,7 +59,7 @@ test3_tmpl(void) { typedef struct ST<int> foo; ST<int> v; - const foo &var = v; + const foo __attribute__((unused))&var = v; } void @@ -72,7 +72,7 @@ void test4(void) { typedef int foo; - int vec[1] = {sizeof (foo)}; + int __attribute__((unused))vec[1] = {sizeof (foo)}; } void @@ -87,11 +87,11 @@ test5(void) typedef C0 T4; int v0 = (T0) 2; - char v1 = static_cast<T1> (0); - reinterpret_cast<T2> (&v0); + char __attribute__((unused)) v1 = static_cast<T1> (0); + if (reinterpret_cast<T2> (&v0)); unsigned* const c = 0; - unsigned* v2 = const_cast<T3* const> (c); - C0 *p0 = 0; + unsigned* __attribute__((unused))v2 = const_cast<T3* const> (c); + C0 *__attribute__((unused))p0 = 0; C1 *p1 = 0; p0 = dynamic_cast<T4*> (p1); } @@ -101,7 +101,7 @@ test6(void) { struct C0 {}; typedef C0 foo; - C0 *v = new foo; + C0 *__attribute__((unused))v = new foo; } template<class T, class U> |