r243133 - Correct x86_64 Android fp128 mangled name

Hans Wennborg hans at chromium.org
Mon Jul 27 11:39:01 PDT 2015


Should this be merged to 3.7?

On Fri, Jul 24, 2015 at 11:12 AM, Chih-Hung Hsieh <chh at google.com> wrote:
> Author: chh
> Date: Fri Jul 24 13:12:54 2015
> New Revision: 243133
>
> URL: http://llvm.org/viewvc/llvm-project?rev=243133&view=rev
> Log:
> Correct x86_64 Android fp128 mangled name
>
> These changes are for Android x86_64 targets to be compatible with current Android g++.
> https://llvm.org/bugs/show_bug.cgi?id=23897
> Use 'g' and 'Cg' for "long double" and "long double _Complex" mangled type names.
>
> Differential Revision: http://reviews.llvm.org/D11466
>
> Added:
>     cfe/trunk/test/CodeGen/long_double_fp128.cpp
> Modified:
>     cfe/trunk/lib/Basic/Targets.cpp
>
> Modified: cfe/trunk/lib/Basic/Targets.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=243133&r1=243132&r2=243133&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Basic/Targets.cpp (original)
> +++ cfe/trunk/lib/Basic/Targets.cpp Fri Jul 24 13:12:54 2015
> @@ -7071,6 +7071,10 @@ public:
>        : LinuxTargetInfo<X86_64TargetInfo>(Triple) {
>      LongDoubleFormat = &llvm::APFloat::IEEEquad;
>    }
> +
> +  bool useFloat128ManglingForLongDouble() const override {
> +    return true;
> +  }
>  };
>  } // end anonymous namespace
>
>
> Added: cfe/trunk/test/CodeGen/long_double_fp128.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGen/long_double_fp128.cpp?rev=243133&view=auto
> ==============================================================================
> --- cfe/trunk/test/CodeGen/long_double_fp128.cpp (added)
> +++ cfe/trunk/test/CodeGen/long_double_fp128.cpp Fri Jul 24 13:12:54 2015
> @@ -0,0 +1,22 @@
> +// RUN: %clang_cc1 -triple x86_64-linux-android -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=A64
> +// RUN: %clang_cc1 -triple x86_64-linux-gnu -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=G64
> +// RUN: %clang_cc1 -triple powerpc64-linux-gnu -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=P64
> +// RUN: %clang_cc1 -triple i686-linux-android -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=A32
> +// RUN: %clang_cc1 -triple i686-linux-gnu -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=G32
> +// RUN: %clang_cc1 -triple powerpc-linux-gnu -emit-llvm -o - %s \
> +// RUN:    | FileCheck %s --check-prefix=P32
> +
> +// Check mangled name of long double.
> +// Android's gcc and llvm use fp128 for long double.
> +void test(long, float, double, long double, long double _Complex) { }
> +// A64:  define void @_Z4testlfdgCg(i64, float, double, fp128, { fp128, fp128 }*
> +// G64:  define void @_Z4testlfdeCe(i64, float, double, x86_fp80, { x86_fp80, x86_fp80 }*
> +// P64:  define void @_Z4testlfdgCg(i64, float, double, ppc_fp128, ppc_fp128 {{.*}}, ppc_fp128
> +// A32:  define void @_Z4testlfdeCe(i32, float, double, double, { double, double }*
> +// G32:  define void @_Z4testlfdeCe(i32, float, double, x86_fp80, { x86_fp80, x86_fp80 }*
> +// P32:  define void @_Z4testlfdgCg(i32, float, double, ppc_fp128, { ppc_fp128, ppc_fp128 }*
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list