do not store wchar/char16/char32/intmax width/alignment info
into TargetInfo, just derive this based on the underlying type.
This prevents them from getting out of synch, patch by Ken Dyck!
llvm-svn: 86976
diff --git a/clang/lib/Basic/TargetInfo.cpp b/clang/lib/Basic/TargetInfo.cpp
index 1318130..b6c4df8 100644
--- a/clang/lib/Basic/TargetInfo.cpp
+++ b/clang/lib/Basic/TargetInfo.cpp
@@ -25,9 +25,6 @@
// These should be overridden by concrete targets as needed.
TLSSupported = true;
PointerWidth = PointerAlign = 32;
- WCharWidth = WCharAlign = 32;
- Char16Width = Char16Align = 16;
- Char32Width = Char32Align = 32;
IntWidth = IntAlign = 32;
LongWidth = LongAlign = 32;
LongLongWidth = LongLongAlign = 64;
@@ -37,7 +34,6 @@
DoubleAlign = 64;
LongDoubleWidth = 64;
LongDoubleAlign = 64;
- IntMaxTWidth = 64;
SizeType = UnsignedLong;
PtrDiffType = SignedLong;
IntMaxType = SignedLongLong;
@@ -147,7 +143,6 @@
void TargetInfo::setForcedLangOptions(LangOptions &Opts) {
if (Opts.ShortWChar) {
WCharType = UnsignedShort;
- WCharWidth = WCharAlign = 16;
}
}
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 4ee377e..d1888df 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -962,7 +962,6 @@
: X86_32TargetInfo(triple) {
TLSSupported = false;
WCharType = UnsignedShort;
- WCharWidth = WCharAlign = 16;
DoubleAlign = LongLongAlign = 64;
DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
"i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-"
@@ -1033,7 +1032,6 @@
: X86_32TargetInfo(triple) {
TLSSupported = false;
WCharType = UnsignedShort;
- WCharWidth = WCharAlign = 16;
DoubleAlign = LongLongAlign = 64;
DescriptionString = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-"
"i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-"
@@ -1092,7 +1090,6 @@
: X86_64TargetInfo(triple) {
TLSSupported = false;
WCharType = UnsignedShort;
- WCharWidth = WCharAlign = 16;
LongWidth = LongAlign = 32;
DoubleAlign = LongLongAlign = 64;
}
@@ -1507,7 +1504,6 @@
TLSSupported = false;
IntWidth = 16;
LongWidth = LongLongWidth = 32;
- IntMaxTWidth = 32;
PointerWidth = 16;
IntAlign = 8;
LongAlign = LongLongAlign = 8;
@@ -1575,7 +1571,6 @@
TLSSupported = false;
IntWidth = 16;
LongWidth = LongLongWidth = 32;
- IntMaxTWidth = 32;
PointerWidth = 16;
IntAlign = 8;
LongAlign = LongLongAlign = 8;
@@ -1789,7 +1784,6 @@
TLSSupported = false;
IntWidth = 32;
LongWidth = LongLongWidth = 32;
- IntMaxTWidth = 32;
PointerWidth = 32;
IntAlign = 32;
LongAlign = LongLongAlign = 32;
diff --git a/clang/lib/Frontend/InitPreprocessor.cpp b/clang/lib/Frontend/InitPreprocessor.cpp
index 462e065..f6e6058 100644
--- a/clang/lib/Frontend/InitPreprocessor.cpp
+++ b/clang/lib/Frontend/InitPreprocessor.cpp
@@ -364,11 +364,7 @@
DefineTypeSize("__INT_MAX__", TargetInfo::SignedInt, TI, Buf);
DefineTypeSize("__LONG_MAX__", TargetInfo::SignedLong, TI, Buf);
DefineTypeSize("__LONG_LONG_MAX__", TargetInfo::SignedLongLong, TI, Buf);
- // FIXME: TI.getWCharWidth() and TI.getTypeWidth(TI.getWCharType()) return
- // different values on PIC16 and MSP430. TargetInfo needs to be corrected
- // and the following line substituted for the one below it.
- // DefineTypeSize("__WCHAR_MAX__", TI.getWCharType(), TI, Buf);
- DefineTypeSize("__WCHAR_MAX__", TI.getWCharWidth(), "", true, Buf);
+ DefineTypeSize("__WCHAR_MAX__", TI.getWCharType(), TI, Buf);
DefineTypeSize("__INTMAX_MAX__", TI.getIntMaxType(), TI, Buf);
DefineType("__INTMAX_TYPE__", TI.getIntMaxType(), Buf);