// lwg404: yes
// lwg2340: yes
-// REQUIRES: LP64
-typedef __SIZE_TYPE__ size_t;
+// FIXME: __SIZE_TYPE__ expands to 'long long' on some targets.
+__extension__ typedef __SIZE_TYPE__ size_t;
namespace std { struct bad_alloc {}; }
inline void* operator new(size_t) BAD_ALLOC; // expected-error {{cannot be declared 'inline'}}
// RUN: %clang_cc1 -std=c++11 %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
// RUN: %clang_cc1 -std=c++1y %s -verify -fexceptions -fcxx-exceptions -pedantic-errors
+// FIXME: __SIZE_TYPE__ expands to 'long long' on some targets.
+__extension__ typedef __SIZE_TYPE__ size_t;
+
namespace dr400 { // dr400: yes
struct A { int a; struct a {}; }; // expected-note 2{{conflicting}} expected-note {{ambiguous}}
struct B { int a; struct a {}; }; // expected-note 2{{target}} expected-note {{ambiguous}}
}
namespace dr429 { // dr429: yes c++11
- // REQUIRES: LP64
// FIXME: This rule is obviously intended to apply to C++98 as well.
- typedef __SIZE_TYPE__ size_t;
struct A {
static void *operator new(size_t, size_t);
static void operator delete(void*, size_t);