diff options
Diffstat (limited to 'lib/Sema/SemaType.cpp')
-rw-r--r-- | lib/Sema/SemaType.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index 7acb4587a0..bda8932ef4 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -42,6 +42,21 @@ QualType Sema::ConvertDeclSpecToType(const DeclSpec &DS) { Result = Context.UnsignedCharTy; } break; + case DeclSpec::TST_wchar: + if (DS.getTypeSpecSign() == DeclSpec::TSS_unspecified) + Result = Context.WCharTy; + else if (DS.getTypeSpecSign() == DeclSpec::TSS_signed) { + Diag(DS.getTypeSpecSignLoc(), diag::ext_invalid_sign_spec, + DS.getSpecifierName(DS.getTypeSpecType())); + Result = Context.getSignedWCharType(); + } else { + assert(DS.getTypeSpecSign() == DeclSpec::TSS_unsigned && + "Unknown TSS value"); + Diag(DS.getTypeSpecSignLoc(), diag::ext_invalid_sign_spec, + DS.getSpecifierName(DS.getTypeSpecType())); + Result = Context.getUnsignedWCharType(); + } + break; case DeclSpec::TST_unspecified: // "<proto1,proto2>" is an objc qualified ID with a missing id. if (DeclSpec::ProtocolQualifierListTy PQ = DS.getProtocolQualifiers()) { |