summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-12-25 23:25:43 +0000
committerChris Lattner <sabre@nondot.org>2010-12-25 23:25:43 +0000
commitad3467ee8997900b16a7239b79a33235923a3c0d (patch)
treefa5579582ba25f07c32a6b9ee28784ed7c8d2e5f /clang/tools/libclang
parent03a102bff3bf1dbb37cac3f4e201e4b28b46a2fe (diff)
downloadbcm5719-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.cpp3
-rw-r--r--clang/tools/libclang/CIndexUSRs.cpp3
-rw-r--r--clang/tools/libclang/CXType.cpp5
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);
OpenPOWER on IntegriCloud