diff options
| author | Chris Lattner <sabre@nondot.org> | 2010-12-25 23:25:43 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2010-12-25 23:25:43 +0000 |
| commit | ad3467ee8997900b16a7239b79a33235923a3c0d (patch) | |
| tree | fa5579582ba25f07c32a6b9ee28784ed7c8d2e5f /clang/tools/libclang | |
| parent | 03a102bff3bf1dbb37cac3f4e201e4b28b46a2fe (diff) | |
| download | bcm5719-llvm-ad3467ee8997900b16a7239b79a33235923a3c0d.tar.gz bcm5719-llvm-ad3467ee8997900b16a7239b79a33235923a3c0d.zip | |
The -fshort-wchar option causes wchar_t to become unsigned, in addition to being
16-bits in size. Implement this by splitting WChar into two enums, like we have
for char. This fixes a miscompmilation of XULRunner, PR8856.
llvm-svn: 122558
Diffstat (limited to 'clang/tools/libclang')
| -rw-r--r-- | clang/tools/libclang/CIndex.cpp | 3 | ||||
| -rw-r--r-- | clang/tools/libclang/CIndexUSRs.cpp | 3 | ||||
| -rw-r--r-- | clang/tools/libclang/CXType.cpp | 5 |
3 files changed, 7 insertions, 4 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp index 61ff611a66b..7e3c3432d56 100644 --- a/clang/tools/libclang/CIndex.cpp +++ b/clang/tools/libclang/CIndex.cpp @@ -1291,7 +1291,8 @@ bool CursorVisitor::VisitBuiltinTypeLoc(BuiltinTypeLoc TL) { case BuiltinType::UInt128: case BuiltinType::Char_S: case BuiltinType::SChar: - case BuiltinType::WChar: + case BuiltinType::WChar_U: + case BuiltinType::WChar_S: case BuiltinType::Short: case BuiltinType::Int: case BuiltinType::Long: diff --git a/clang/tools/libclang/CIndexUSRs.cpp b/clang/tools/libclang/CIndexUSRs.cpp index 5861ee6309d..c96dad5cd0f 100644 --- a/clang/tools/libclang/CIndexUSRs.cpp +++ b/clang/tools/libclang/CIndexUSRs.cpp @@ -550,7 +550,8 @@ void USRGenerator::VisitType(QualType T) { case BuiltinType::Char_S: case BuiltinType::SChar: c = 'C'; break; - case BuiltinType::WChar: + case BuiltinType::WChar_S: + case BuiltinType::WChar_U: c = 'W'; break; case BuiltinType::Short: c = 'S'; break; diff --git a/clang/tools/libclang/CXType.cpp b/clang/tools/libclang/CXType.cpp index 2fe360b3199..e1297a43252 100644 --- a/clang/tools/libclang/CXType.cpp +++ b/clang/tools/libclang/CXType.cpp @@ -41,7 +41,8 @@ static CXTypeKind GetBuiltinTypeKind(const BuiltinType *BT) { BTCASE(UInt128); BTCASE(Char_S); BTCASE(SChar); - BTCASE(WChar); + case BuiltinType::WChar_S: return CXType_WChar; + case BuiltinType::WChar_U: return CXType_WChar; BTCASE(Short); BTCASE(Int); BTCASE(Long); @@ -286,7 +287,7 @@ CXString clang_getTypeKindSpelling(enum CXTypeKind K) { TKIND(UInt128); TKIND(Char_S); TKIND(SChar); - TKIND(WChar); + case CXType_WChar: s = "WChar"; break; TKIND(Short); TKIND(Int); TKIND(Long); |

