aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDodji Seketeli <dodji@redhat.com>2012-05-22 03:50:26 +0000
committerDodji Seketeli <dodji@gcc.gnu.org>2012-05-22 05:50:26 +0200
commit650dc14a737860cafd34eb4dea683cee87891589 (patch)
tree3abe77217bb08403458a1264d8b096fc73f1553f /gcc
parent00d7b6e2c4a5e90177a93cfda6ea401b34dc184f (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/c-family/c.opt2
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/f95-lang.c1
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/g++.dg/warn/Wunused-local-typedefs.C16
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>