forked from OSchip/llvm-project
Add support for '__is_literal_type' spelling of the existing
'__is_literal' type trait for GCC compatibility. At least one relased version if libstdc++ uses this name for the trait despite it not being documented anywhere. llvm-svn: 130078
This commit is contained in:
parent
ad7d404732
commit
65fa1fd18e
|
@ -338,6 +338,9 @@ KEYWORD(__is_empty , KEYCXX)
|
|||
KEYWORD(__is_enum , KEYCXX)
|
||||
// Tentative name - there's no implementation of std::is_literal_type yet.
|
||||
KEYWORD(__is_literal , KEYCXX)
|
||||
// Name for GCC 4.6 compatibility - people have already written libraries using
|
||||
// this name unfortunately.
|
||||
KEYWORD(__is_literal_type , KEYCXX)
|
||||
KEYWORD(__is_pod , KEYCXX)
|
||||
KEYWORD(__is_polymorphic , KEYCXX)
|
||||
KEYWORD(__is_trivial , KEYCXX)
|
||||
|
|
|
@ -989,6 +989,7 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression,
|
|||
case tok::kw___is_empty:
|
||||
case tok::kw___is_enum:
|
||||
case tok::kw___is_literal:
|
||||
case tok::kw___is_literal_type:
|
||||
case tok::kw___is_pod:
|
||||
case tok::kw___is_polymorphic:
|
||||
case tok::kw___is_trivial:
|
||||
|
|
|
@ -1927,6 +1927,7 @@ static UnaryTypeTrait UnaryTypeTraitFromTokKind(tok::TokenKind kind) {
|
|||
case tok::kw___is_empty: return UTT_IsEmpty;
|
||||
case tok::kw___is_enum: return UTT_IsEnum;
|
||||
case tok::kw___is_literal: return UTT_IsLiteral;
|
||||
case tok::kw___is_literal_type: return UTT_IsLiteral;
|
||||
case tok::kw___is_pod: return UTT_IsPOD;
|
||||
case tok::kw___is_polymorphic: return UTT_IsPolymorphic;
|
||||
case tok::kw___is_trivial: return UTT_IsTrivial;
|
||||
|
|
|
@ -660,6 +660,7 @@ Parser::isExpressionOrTypeSpecifierSimple(tok::TokenKind Kind) {
|
|||
case tok::kw___is_empty:
|
||||
case tok::kw___is_enum:
|
||||
case tok::kw___is_literal:
|
||||
case tok::kw___is_literal_type:
|
||||
case tok::kw___is_pod:
|
||||
case tok::kw___is_polymorphic:
|
||||
case tok::kw___is_trivial:
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s
|
||||
|
||||
static_assert(__is_literal(int), "fail");
|
||||
static_assert(__is_literal_type(int), "fail"); // alternate spelling for GCC
|
||||
static_assert(__is_literal(void*), "fail");
|
||||
enum E { E1 };
|
||||
static_assert(__is_literal(E), "fail");
|
||||
|
|
Loading…
Reference in New Issue