rsmith added a comment. What about `-mlong-double-128`? It seems sensible to me to add support for that at the same time.
It looks like this also needs to affect name mangling. As far as I can tell from some quick testing, on ppc64-linux-gnu GCC uses `e` for 64-bit `long double` and `g` for 128-bit `long double`. On x86_64, `-mlong-double-64` and `-mlong-double-128` do not appear to affect the mangling scheme. Someone needs to do some research here to find out what the right mangling scheme to use is for each platform where we want to allow these flags. ================ Comment at: lib/Basic/TargetInfo.cpp:277 + LongDoubleWidth = 64; + LongDoubleAlign = 32; + LongDoubleFormat = &llvm::APFloat::IEEEdouble; ---------------- hfinkel wrote: > This seems wrong for targets in general. Maybe this should be, instead of 32 > always, 64 on 64-bit targets? I'd expect that this should match the alignment of `double`. ================ Comment at: lib/Basic/TargetInfo.cpp:299 } LongDoubleWidth = LongDoubleAlign = 128; ---------------- What should happen if you try to combine `-mlong-double-64` with `-x cl`? I'd expect the `-mlong-double-64` to win (as it's clearly a more specific override). https://reviews.llvm.org/D6260 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits