+2008-06-25 Paolo Carlini <paolo.carlini@oracle.com>
+
+ * testsuite/29_atomics/atomic_flag/cons/default.cc: Avoid -Wall
+ warnings.
+ * testsuite/29_atomics/atomic_flag/cons/aggregate.cc: Likewise.
+ * testsuite/29_atomics/headers/cstdatomic/types_std_c++0x.cc:
+ Likewise.
+ * testsuite/29_atomics/headers/stdatomic.h/types.c: Likewise.
+ * testsuite/util/testsuite_common_types.h (struct assignable,
+ struct default_constructible, struct copy_constructible,
+ struct explicit_value_constructible): Use a tad of simulated
+ concept checking techniques to avoid spurious warnings.
+ * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error
+ markers.
+ * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
+
2008-06-25 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/stl_algo.h (__find_if_not, find_if_not, all_of,
return 0;
}
-// { dg-error "within this context" "" { target *-*-* } 309 }
-// { dg-error "is private" "" { target *-*-* } 1750 }
+// { dg-error "within this context" "" { target *-*-* } 310 }
+// { dg-error "is private" "" { target *-*-* } 1750 }
// { dg-error "is private" "" { target *-*-* } 1782 }
// { dg-error "is private" "" { target *-*-* } 1799 }
// { dg-error "is private" "" { target *-*-* } 1816 }
return 0;
}
-// { dg-error "within this context" "" { target *-*-* } 332 }
-// { dg-error "is private" "" { target *-*-* } 1749 }
-// { dg-error "is private" "" { target *-*-* } 1781 }
+// { dg-error "within this context" "" { target *-*-* } 349 }
+// { dg-error "is private" "" { target *-*-* } 1749 }
+// { dg-error "is private" "" { target *-*-* } 1781 }
// { dg-error "is private" "" { target *-*-* } 1798 }
// { dg-error "is private" "" { target *-*-* } 1814 }
// { dg-error "is private" "" { target *-*-* } 1831 }
int main()
{
// Only safe usage.
- std::atomic_flag guard = ATOMIC_FLAG_INIT;
+ std::atomic_flag guard __attribute__((unused)) = ATOMIC_FLAG_INIT;
return 0;
}
int main()
{
// Default constructor.
- std::atomic_flag a;
+ std::atomic_flag a __attribute__((unused));
return 0;
}
using std::atomic_address;
- &std::atomic_global_fence_compatibility;
+ const std::atomic_flag* p __attribute__((unused))
+ = &std::atomic_global_fence_compatibility;
}
void test01()
{
typedef memory_order t_01;
- memory_order t_02 = memory_order_relaxed;
- memory_order t_03 = memory_order_acquire;
- memory_order t_04 = memory_order_release;
- memory_order t_05 = memory_order_acq_rel;
- memory_order t_06 = memory_order_seq_cst;
+ memory_order t_02 __attribute__((unused)) = memory_order_relaxed;
+ memory_order t_03 __attribute__((unused)) = memory_order_acquire;
+ memory_order t_04 __attribute__((unused)) = memory_order_release;
+ memory_order t_05 __attribute__((unused)) = memory_order_acq_rel;
+ memory_order t_06 __attribute__((unused)) = memory_order_seq_cst;
typedef atomic_flag t_07;
typedef atomic_address t_46;
- &atomic_global_fence_compatibility;
+ const atomic_flag* p __attribute__((unused))
+ = &atomic_global_fence_compatibility;
}
// Generator to test assignment operator.
struct assignable
{
- template<typename _T>
+ template<typename _Tp>
void
operator()()
{
- _T v1;
- _T v2;
- v1 = v2;
+ struct _Concept
+ {
+ void __constraint()
+ { __v1 = __v2; }
+
+ _Tp __v1;
+ _Tp __v2;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
}
};
// Generator to test default constructor.
struct default_constructible
{
- template<typename _T>
+ template<typename _Tp>
void
operator()()
{
- _T v;
+ struct _Concept
+ {
+ void __constraint()
+ { _Tp __v; }
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
}
};
// Generator to test copy constructor.
struct copy_constructible
{
- template<typename _T>
+ template<typename _Tp>
void
operator()()
{
- _T v1;
- _T v2(v1);
+ struct _Concept
+ {
+ void __constraint()
+ { _Tp __v2(__v1); }
+
+ _Tp __v1;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
}
};
void
operator()()
{
- _Tvalue a;
- _Ttype v(a);
+ struct _Concept
+ {
+ void __constraint()
+ { _Ttype __v(__a); }
+
+ _Tvalue __a;
+ };
+
+ void (_Concept::*__x)() __attribute__((unused))
+ = &_Concept::__constraint;
}
};