Author: johannes Date: Fri Dec 14 17:17:25 2007 New Revision: 45045 URL: http://llvm.org/viewvc/llvm-project?rev=45045&view=rev Log: Fix a testsuite bug, described in comments.
Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Modified: llvm-gcc-4.2/trunk/gcc/llvm-types.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/llvm-types.cpp?rev=45045&r1=45044&r2=45045&view=diff ============================================================================== --- llvm-gcc-4.2/trunk/gcc/llvm-types.cpp (original) +++ llvm-gcc-4.2/trunk/gcc/llvm-types.cpp Fri Dec 14 17:17:25 2007 @@ -1068,7 +1068,14 @@ RAttributes |= ParamAttr::NoUnwind; // Check for 'readnone' function attribute. - if (flags & ECF_CONST) + // Both PURE and CONST will be set if the user applied + // __attribute__((const)) to a function the compiler + // knows to be pure, such as log. A user or (more + // likely) libm implementor might know their local log + // is in fact const, so this should be valid (and gcc + // accepts it). But llvm IR does not allow both, so + // set only ReadNone. + if (flags & ECF_CONST && !(flags & ECF_PURE)) // Since they write the return value through a pointer, // 'sret' functions cannot be 'readnone'. if (!ABIConverter.isStructReturn()) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits