Minor cleanup from yesterday's -fms-extension commit. Move __int* MS keywords to predefined macros. This removes some of the MS-madness from Parser::ParseDeclarationSpecifiers().
llvm-svn: 46852
This commit is contained in:
parent
e187d0511f
commit
6936a08704
|
@ -430,6 +430,10 @@ static void InitializePredefinedMacros(Preprocessor &PP,
|
||||||
DefineBuiltinMacro(Buf, "_cdecl=");
|
DefineBuiltinMacro(Buf, "_cdecl=");
|
||||||
DefineBuiltinMacro(Buf, "__ptr64=");
|
DefineBuiltinMacro(Buf, "__ptr64=");
|
||||||
DefineBuiltinMacro(Buf, "__forceinline=");
|
DefineBuiltinMacro(Buf, "__forceinline=");
|
||||||
|
DefineBuiltinMacro(Buf, "__int8=char");
|
||||||
|
DefineBuiltinMacro(Buf, "__int16=short");
|
||||||
|
DefineBuiltinMacro(Buf, "__int32=int");
|
||||||
|
DefineBuiltinMacro(Buf, "__int64=long");
|
||||||
}
|
}
|
||||||
// FIXME: Should emit a #line directive here.
|
// FIXME: Should emit a #line directive here.
|
||||||
}
|
}
|
||||||
|
|
|
@ -516,11 +516,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// type-specifiers
|
// type-specifiers
|
||||||
case tok::kw___int16:
|
|
||||||
case tok::kw_short:
|
case tok::kw_short:
|
||||||
isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_short, Loc, PrevSpec);
|
isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_short, Loc, PrevSpec);
|
||||||
break;
|
break;
|
||||||
case tok::kw___int64:
|
|
||||||
case tok::kw_long:
|
case tok::kw_long:
|
||||||
if (DS.getTypeSpecWidth() != DeclSpec::TSW_long)
|
if (DS.getTypeSpecWidth() != DeclSpec::TSW_long)
|
||||||
isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_long, Loc, PrevSpec);
|
isInvalid = DS.SetTypeSpecWidth(DeclSpec::TSW_long, Loc, PrevSpec);
|
||||||
|
@ -542,11 +540,9 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) {
|
||||||
case tok::kw_void:
|
case tok::kw_void:
|
||||||
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec);
|
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_void, Loc, PrevSpec);
|
||||||
break;
|
break;
|
||||||
case tok::kw___int8:
|
|
||||||
case tok::kw_char:
|
case tok::kw_char:
|
||||||
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec);
|
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_char, Loc, PrevSpec);
|
||||||
break;
|
break;
|
||||||
case tok::kw___int32:
|
|
||||||
case tok::kw_int:
|
case tok::kw_int:
|
||||||
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec);
|
isInvalid = DS.SetTypeSpecType(DeclSpec::TST_int, Loc, PrevSpec);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -302,10 +302,6 @@ KEYWORD(__private_extern__ , EXTC90|EXTC99|NOTCPP)
|
||||||
// Microsoft Extensions.
|
// Microsoft Extensions.
|
||||||
KEYWORD(__w64 , EXTC90|EXTC99|NOTCPP)
|
KEYWORD(__w64 , EXTC90|EXTC99|NOTCPP)
|
||||||
KEYWORD(__declspec , EXTC90|EXTC99|NOTCPP)
|
KEYWORD(__declspec , EXTC90|EXTC99|NOTCPP)
|
||||||
KEYWORD(__int8 , EXTC90|EXTC99|NOTCPP)
|
|
||||||
KEYWORD(__int16 , EXTC90|EXTC99|NOTCPP)
|
|
||||||
KEYWORD(__int32 , EXTC90|EXTC99|NOTCPP)
|
|
||||||
KEYWORD(__int64 , EXTC90|EXTC99|NOTCPP)
|
|
||||||
|
|
||||||
// Alternate spelling for various tokens. There are GCC extensions in all
|
// Alternate spelling for various tokens. There are GCC extensions in all
|
||||||
// languages, but should not be disabled in strict conformance mode.
|
// languages, but should not be disabled in strict conformance mode.
|
||||||
|
|
Loading…
Reference in New Issue