Fixed on 171860. Thanks!
On 8 January 2013 09:28, Dmitri Gribenko <[email protected]> wrote: > Hello David, > > On Sat, Dec 8, 2012 at 11:06 AM, David Chisnall <[email protected]> wrote: >> Author: theraven >> Date: Sat Dec 8 03:06:08 2012 >> New Revision: 169674 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=169674&view=rev >> Log: >> long double should be 64 bits on FreeBSD/MIPS64. It possibly should be on >> Linux too, as I think we inherited it from there. The ABI spec says 128-bit, >> although I think SGI's compiler on IRIX may be the only thing ever to support >> this. >> >> >> Added: >> cfe/trunk/test/Driver/mips-long-double.c >> 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=169674&r1=169673&r2=169674&view=diff >> ============================================================================== >> --- cfe/trunk/lib/Basic/Targets.cpp (original) >> +++ cfe/trunk/lib/Basic/Targets.cpp Sat Dec 8 03:06:08 2012 >> @@ -4222,6 +4222,10 @@ >> PointerWidth = PointerAlign = 64; >> LongDoubleWidth = LongDoubleAlign = 128; >> LongDoubleFormat = &llvm::APFloat::IEEEquad; >> + if (getTriple().getOS() == llvm::Triple::FreeBSD) { >> + LongDoubleWidth = LongDoubleAlign = 64; >> + LongDoubleFormat = &llvm::APFloat::IEEEdouble; >> + } >> SuitableAlign = 128; >> } >> virtual bool setABI(const std::string &Name) { >> >> Added: cfe/trunk/test/Driver/mips-long-double.c >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/mips-long-double.c?rev=169674&view=auto >> ============================================================================== >> --- cfe/trunk/test/Driver/mips-long-double.c (added) >> +++ cfe/trunk/test/Driver/mips-long-double.c Sat Dec 8 03:06:08 2012 >> @@ -0,0 +1,19 @@ >> +// RUN: %clang_cc1 -triple mips64-unknown-freebsd -std=c11 -verify %s >> +// RUN: %clang_cc1 -triple mips-unknown-freebsd -std=c11 -verify %s > >> +// RUN: %clang_cc1 -triple mips-unknown-linux-std=c11 -verify %s >> +// RUN: %clang_cc1 -triple mips64-unknown-linux-std=c11 -verify %s > > There's a space missing before '-std' in these two lines. > Interestingly, the test still passes! > > Dmitri > >> +// expected-no-diagnostics >> + >> +#ifdef _ABI64 >> +# ifdef __FreeBSD__ >> +_Static_assert(sizeof(long double) == 8, "sizeof long double is wrong"); >> +_Static_assert(_Alignof(long double) == 8, "alignof long double is wrong"); >> +# else >> +_Static_assert(sizeof(long double) == 16, "sizeof long double is wrong"); >> +_Static_assert(_Alignof(long double) == 16, "alignof long double is wrong"); >> +# endif >> +#else >> +_Static_assert(sizeof(long double) == 8, "sizeof long double is wrong"); >> +_Static_assert(_Alignof(long double) == 8, "alignof long double is wrong"); >> +#endif >> + > > > -- > main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if > (j){printf("%d\n",i);}}} /*Dmitri Gribenko <[email protected]>*/ > _______________________________________________ > cfe-commits mailing list > [email protected] > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
