From: Douglas Gregor Date: Mon, 18 Jan 2010 20:37:56 +0000 (+0000) Subject: float, double, and long double do need extra data in the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d038f361d2b4368af7ab85bd04d5aafcc3ea649d;p=clang float, double, and long double do need extra data in the BuiltinTypeLoc structure. Thanks, Enea! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93763 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/TypeLoc.h b/include/clang/AST/TypeLoc.h index 0a40ea1fc4..914cc8d0f0 100644 --- a/include/clang/AST/TypeLoc.h +++ b/include/clang/AST/TypeLoc.h @@ -404,7 +404,7 @@ public: bool needsExtraLocalData() const { BuiltinType::Kind bk = getTypePtr()->getKind(); return (bk >= BuiltinType::UShort && bk <= BuiltinType::UInt128) - || (bk >= BuiltinType::Short && bk <= BuiltinType::Int128) + || (bk >= BuiltinType::Short && bk <= BuiltinType::LongDouble) || bk == BuiltinType::UChar || bk == BuiltinType::SChar; } diff --git a/lib/AST/TypeLoc.cpp b/lib/AST/TypeLoc.cpp index 6da2ab0dee..fd9fbc1918 100644 --- a/lib/AST/TypeLoc.cpp +++ b/lib/AST/TypeLoc.cpp @@ -156,11 +156,6 @@ TypeSpecifierType BuiltinTypeLoc::getWrittenTypeSpec() const { return TST_char32; case BuiltinType::WChar: return TST_wchar; - case BuiltinType::Float: - return TST_float; - case BuiltinType::Double: - case BuiltinType::LongDouble: - return TST_double; case BuiltinType::UndeducedAuto: return TST_auto; @@ -176,6 +171,9 @@ TypeSpecifierType BuiltinTypeLoc::getWrittenTypeSpec() const { case BuiltinType::Long: case BuiltinType::LongLong: case BuiltinType::Int128: + case BuiltinType::Float: + case BuiltinType::Double: + case BuiltinType::LongDouble: llvm_unreachable("Builtin type needs extra local data!"); // Fall through, if the impossible happens.