[PATCH] Implement ARM EHABI exception handling.

Joerg Sonnenberger joerg at britannica.bec.de
Mon May 5 13:52:24 PDT 2014


On Mon, May 05, 2014 at 05:41:29PM +0000, Logan Chien wrote:
> Index: test/test_demangle.cpp
> ===================================================================
> --- test/test_demangle.cpp
> +++ test/test_demangle.cpp
> @@ -29513,7 +29513,10 @@
>      {"_ZN5test01fIiEEvT_RAszcl3ovlcvS1__EE_c", "void test0::f<int>(int, char (&) [sizeof (ovl((int)()))])"},
>      {"_ZN5test01gIfEEvRAszplcvT__ELf40a00000E_c", "void test0::g<float>(char (&) [sizeof (((float)()) + (0x1.4p+2f))])"},
>      {"_ZN5test01hIfEEvRAszplcvT__ELd4014000000000000E_c", "void test0::h<float>(char (&) [sizeof (((float)()) + (0x1.4p+2))])"},
> +#if !defined(__arm__)
> +    // This case assumes 80-bit long double.
>      {"_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c", "void test0::h<float>(char (&) [(unsigned int)((sizeof (float)) + (0xap-1L))])"},
> +#endif
>      {"_ZN5test01jINS_1AEEEvRAszdtcvT__E6buffer_c", "void test0::j<test0::A>(char (&) [sizeof ((test0::A)().buffer)])"},
>      {"_ZN5test11fINS_1XEiEEvT_IT0_E", "void test1::f<test1::X, int>(test1::X<int>)"},
>      {"_ZN5test211read_memberINS_1AEEEDtptcvPT_Li0E6memberERS2_", "decltype((test2::A*)(0)->member) test2::read_member<test2::A>(test2::A&)"},
> @@ -29597,6 +29600,10 @@
>      "NSoERj5E=Y1[uM:ga",
>      "Aon_PmKVPDk7?fg4XP5smMUL6;<WsI_mgbf23cCgsHbT<l8EE\0uVRkNOoXDrgdA4[8IU>Vl<>IL8ayHpiVDDDXTY;^o9;i",
>      "_ZNSt16allocator_traitsISaIN4llvm3sys2fs18directory_iteratorEEE9constructIS3_IS3_EEEDTcl12_S_constructfp_fp0_spcl7forwardIT0_Efp1_EEERS4_PT_DpOS7_",
> +#if defined(__arm__)
> +    // Since ARM does not have 80-bit long double, this should fail.
> +    "_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c",
> +#endif
>  };

Can you use __LDBL_MANT_DIG__ == 64 instead?

Joerg



More information about the cfe-commits mailing list