@@ -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
@@ -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];
@@ -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>
@@ -944,8 +944,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
lower_bound(_ForwardIterator __first, _ForwardIterator __last,
const _Tp& __val)
{
+#ifdef _GLIBCXX_CONCEPT_CHECKS
typedef typename iterator_traits<_ForwardIterator>::value_type
_ValueType;
+#endif
typedef typename iterator_traits<_ForwardIterator>::difference_type
_DistanceType;
@@ -1083,9 +1085,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
lexicographical_compare(_II1 __first1, _II1 __last1,
_II2 __first2, _II2 __last2)
{
+#ifdef _GLIBCXX_CONCEPT_CHECKS
// concept requirements
typedef typename iterator_traits<_II1>::value_type _ValueType1;
typedef typename iterator_traits<_II2>::value_type _ValueType2;
+#endif
__glibcxx_function_requires(_InputIteratorConcept<_II1>)
__glibcxx_function_requires(_InputIteratorConcept<_II2>)
__glibcxx_function_requires(_LessThanOpConcept<_ValueType1, _ValueType2>)