diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-09 16:51:54 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-09 16:51:54 +0000 |
commit | 64c438a4be2a871fa43c78264663ba1e9788b94d (patch) | |
tree | d88760d32970f7715de5fc0d8aa444fa8857628f /lib/Sema/SemaType.cpp | |
parent | 907747b3a67a41420ead8ef1fc5e6bd9dc9e0ad9 (diff) |
Implement support for the 'wchar_t' C++ type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54585 91177308-0d34-0410-b5e6-96231b3b80d8
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()) { |