// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
static_assert;
static_assert; // alternate spelling for GCC
static_assert;
;
static_assert;
static_assert;
typedef int IAR;
static_assert;
typedef int Vector ;
typedef int VectorExt ;
static_assert;
static_assert;
// C++0x [basic.types]p10:
// A type is a literal type if it is:
// [...]
// -- a class type that has all of the following properties:
// -- it has a trivial destructor
// -- every constructor call and full-expression in the
// brace-or-equal-initializers for non-static data members (if an) is
// a constant expression,
// -- it is an aggregate type or has at least one constexpr constructor
// or constructor template that is not a copy or move constructor, and
// [DR1452 adds class types with trivial default constructors to
// this list]
// -- it has all non-static data members and base classes of literal
// types
;
;
;
;
;
;
;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
static_assert;
// DR1361 removes the brace-or-equal-initializer bullet so that we can allow:
extern int ; // expected-note {{here}}
;
static_assert;
;
;
;
static_assert;
static_assert;
static_assert;