[llvm-commits] [llvm-gcc-4.2] r71555 - in /llvm-gcc-4.2/trunk/gcc: llvm-convert.cpp llvm-internal.h
Bill Wendling
wendling at apple.com
Tue Aug 11 17:41:29 PDT 2009
> Author: baldrick
> Date: Tue May 12 09:54:03 2009
> New Revision: 71555
>
> URL: http://llvm.org/viewvc/llvm-project?rev=71555&view=rev
> Log:
> Reapply r71425, tweaked to be more laid back about
> how void* is converted to an LLVM type.
Duncan,
This patch is breaking on this program:
$ cat t.ii
typedef void (*Func) ();
typedef long long m64 __attribute__((__vector_size__(8),
__may_alias__));
static inline m64 __attribute__((__always_inline__, __nodebug__))
_mm_set1_pi16() {}
template <class MM>
static void Bork() {
const m64 mmx_0x00ff = _mm_set1_pi16();
}
struct A {};
Func qt_functionForModeSolid_MMX[] = {
Bork<A>
};
$ llvm-g++ -mmmx -pipe -m64 -c testcase.ii
Assertion failed: ((Result == 0 || VOID_TYPE_P(TREE_TYPE(exp)) ||
Result->getType() == ConvertType(TREE_TYPE(exp))) && "Value has wrong
type!"), function Emit, file ../../Leela-gcc/gcc/llvm-convert.cpp,
line 1060.
testcase.ii: In function ‘void func1(int)’:
testcase.ii:6: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.org/bugs/> for instructions.
I'm going to back this part of the patch out. Please investigate.
Thanks!
-bw
More information about the llvm-commits
mailing list