From: Roman Divacky Date: Tue, 13 Mar 2012 19:20:17 +0000 (+0000) Subject: Fix the long double to be of width/align 64. Rename va_list_test to X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=efe9c0dffc174d92c255e1ec77f791ef007102dc;p=clang Fix the long double to be of width/align 64. Rename va_list_test to powerpc_types and add testing for the (long) double there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152647 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp index 85dfd78570..8ca91b3a37 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp @@ -872,8 +872,10 @@ public: break; } - if (getTriple().getOS() == llvm::Triple::FreeBSD) + if (getTriple().getOS() == llvm::Triple::FreeBSD) { + LongDoubleWidth = LongDoubleAlign = 64; LongDoubleFormat = &llvm::APFloat::IEEEdouble; + } } virtual const char *getVAListDeclaration() const { @@ -900,8 +902,10 @@ public: DescriptionString = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-" "i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"; - if (getTriple().getOS() == llvm::Triple::FreeBSD) + if (getTriple().getOS() == llvm::Triple::FreeBSD) { + LongDoubleWidth = LongDoubleAlign = 64; LongDoubleFormat = &llvm::APFloat::IEEEdouble; + } } virtual const char *getVAListDeclaration() const { return "typedef char* __builtin_va_list;"; diff --git a/test/CodeGen/va_list_test.c b/test/CodeGen/powerpc_types.c similarity index 54% rename from test/CodeGen/va_list_test.c rename to test/CodeGen/powerpc_types.c index 74f7837d2d..b7d0f5de49 100644 --- a/test/CodeGen/va_list_test.c +++ b/test/CodeGen/powerpc_types.c @@ -4,3 +4,7 @@ int va_list_size = sizeof(va_list); // SVR4-CHECK: va_list_size = global i32 12, align 4 +int long_double_size = sizeof(long double); +// SVR4-CHECK: long_double_size = global i32 8, align 4 +int double_size = sizeof(double); +// SVR4-CHECK: double_size = global i32 8, align 4