mirror of git://gcc.gnu.org/git/gcc.git
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
This commit is contained in:
parent
00d7b6e2c4
commit
650dc14a73
|
@ -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>
|
2012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
|
||||||
|
|
||||||
* c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
|
* c.opt (--pedantic-errors,-pedantic-errors): Do not handle here.
|
||||||
|
|
|
@ -671,7 +671,7 @@ C ObjC Var(warn_unsuffixed_float_constants) Warning
|
||||||
Warn about unsuffixed float constants
|
Warn about unsuffixed float constants
|
||||||
|
|
||||||
Wunused-local-typedefs
|
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
|
Warn when typedefs locally defined in a function are not used
|
||||||
|
|
||||||
Wunused-macros
|
Wunused-macros
|
||||||
|
|
|
@ -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>
|
2012-05-14 Janne Blomqvist <jb@gcc.gnu.org>
|
||||||
|
|
||||||
PR fortran/52428
|
PR fortran/52428
|
||||||
|
|
|
@ -641,7 +641,6 @@ gfc_init_builtin_functions (void)
|
||||||
#undef DEF_POINTER_TYPE
|
#undef DEF_POINTER_TYPE
|
||||||
BT_LAST
|
BT_LAST
|
||||||
};
|
};
|
||||||
typedef enum builtin_type builtin_type;
|
|
||||||
|
|
||||||
tree mfunc_float[6];
|
tree mfunc_float[6];
|
||||||
tree mfunc_double[6];
|
tree mfunc_double[6];
|
||||||
|
|
|
@ -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>
|
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
PR c++/51184
|
PR c++/51184
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// Origin PR c++/33255
|
// Origin PR c++/33255
|
||||||
// { dg-options "-Wunused-local-typedefs" }
|
// { dg-options "-Wunused" } <-- should trigger -Wunused-local-typedefs
|
||||||
// { dg-do compile }
|
// { dg-do compile }
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -59,7 +59,7 @@ test3_tmpl(void)
|
||||||
{
|
{
|
||||||
typedef struct ST<int> foo;
|
typedef struct ST<int> foo;
|
||||||
ST<int> v;
|
ST<int> v;
|
||||||
const foo &var = v;
|
const foo __attribute__((unused))&var = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -72,7 +72,7 @@ void
|
||||||
test4(void)
|
test4(void)
|
||||||
{
|
{
|
||||||
typedef int foo;
|
typedef int foo;
|
||||||
int vec[1] = {sizeof (foo)};
|
int __attribute__((unused))vec[1] = {sizeof (foo)};
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -87,11 +87,11 @@ test5(void)
|
||||||
typedef C0 T4;
|
typedef C0 T4;
|
||||||
|
|
||||||
int v0 = (T0) 2;
|
int v0 = (T0) 2;
|
||||||
char v1 = static_cast<T1> (0);
|
char __attribute__((unused)) v1 = static_cast<T1> (0);
|
||||||
reinterpret_cast<T2> (&v0);
|
if (reinterpret_cast<T2> (&v0));
|
||||||
unsigned* const c = 0;
|
unsigned* const c = 0;
|
||||||
unsigned* v2 = const_cast<T3* const> (c);
|
unsigned* __attribute__((unused))v2 = const_cast<T3* const> (c);
|
||||||
C0 *p0 = 0;
|
C0 *__attribute__((unused))p0 = 0;
|
||||||
C1 *p1 = 0;
|
C1 *p1 = 0;
|
||||||
p0 = dynamic_cast<T4*> (p1);
|
p0 = dynamic_cast<T4*> (p1);
|
||||||
}
|
}
|
||||||
|
@ -101,7 +101,7 @@ test6(void)
|
||||||
{
|
{
|
||||||
struct C0 {};
|
struct C0 {};
|
||||||
typedef C0 foo;
|
typedef C0 foo;
|
||||||
C0 *v = new foo;
|
C0 *__attribute__((unused))v = new foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class T, class U>
|
template<class T, class U>
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2012-05-22 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
|
PR c++/53322
|
||||||
|
* include/bits/stl_algobase.h (lower_bound)
|
||||||
|
(lexicographical_compare): Do not declare unused local typedefs
|
||||||
|
here when Concepts are turned off.
|
||||||
|
|
||||||
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
|
2012-05-21 Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
* testsuite/22_locale/num_put/put/char/9780-2.cc: Avoid -Wall warnings.
|
* testsuite/22_locale/num_put/put/char/9780-2.cc: Avoid -Wall warnings.
|
||||||
|
|
|
@ -944,8 +944,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||||
lower_bound(_ForwardIterator __first, _ForwardIterator __last,
|
lower_bound(_ForwardIterator __first, _ForwardIterator __last,
|
||||||
const _Tp& __val)
|
const _Tp& __val)
|
||||||
{
|
{
|
||||||
|
#ifdef _GLIBCXX_CONCEPT_CHECKS
|
||||||
typedef typename iterator_traits<_ForwardIterator>::value_type
|
typedef typename iterator_traits<_ForwardIterator>::value_type
|
||||||
_ValueType;
|
_ValueType;
|
||||||
|
#endif
|
||||||
typedef typename iterator_traits<_ForwardIterator>::difference_type
|
typedef typename iterator_traits<_ForwardIterator>::difference_type
|
||||||
_DistanceType;
|
_DistanceType;
|
||||||
|
|
||||||
|
@ -1083,9 +1085,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
|
||||||
lexicographical_compare(_II1 __first1, _II1 __last1,
|
lexicographical_compare(_II1 __first1, _II1 __last1,
|
||||||
_II2 __first2, _II2 __last2)
|
_II2 __first2, _II2 __last2)
|
||||||
{
|
{
|
||||||
|
#ifdef _GLIBCXX_CONCEPT_CHECKS
|
||||||
// concept requirements
|
// concept requirements
|
||||||
typedef typename iterator_traits<_II1>::value_type _ValueType1;
|
typedef typename iterator_traits<_II1>::value_type _ValueType1;
|
||||||
typedef typename iterator_traits<_II2>::value_type _ValueType2;
|
typedef typename iterator_traits<_II2>::value_type _ValueType2;
|
||||||
|
#endif
|
||||||
__glibcxx_function_requires(_InputIteratorConcept<_II1>)
|
__glibcxx_function_requires(_InputIteratorConcept<_II1>)
|
||||||
__glibcxx_function_requires(_InputIteratorConcept<_II2>)
|
__glibcxx_function_requires(_InputIteratorConcept<_II2>)
|
||||||
__glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
|
__glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)
|
||||||
|
|
Loading…
Reference in New Issue