On alpha, I am seeing a problem with Emiting va_copy. valists are
structs and allocated by alloca, unlike x86. EmitBuiltinVACopy is
therefore using the second branch of the if (~llvm-convert.cpp:6538)
to emit the second argument. The second argument is the result of an
alloca. TreeToLLVM::Emit is hitting the first assertion (~929).
The exp being passed is:
<var_decl 0x20000b44240 ap
type <record_type 0x200008f96b0 va_list sizes-gimplified no-force-blk BLK
size <integer_cst 0x20000820ea0 constant invariant 128>
unit size <integer_cst 0x20000820ed0 constant invariant 16>
align 64 symtab 0 alias set -1
fields <field_decl 0x20000846180 __base type <pointer_type
0x20000833130>
unsigned asm-frame-size 0 DI file <built-in> line 0
size <integer_cst 0x20000820b70 constant invariant 64>
unit size <integer_cst 0x20000820ba0 constant invariant 8>
align 64 offset_align 128
offset <integer_cst 0x20000820510 constant invariant 0>
bit offset <integer_cst 0x20000821530 constant invariant
0> context <record_type 0x200008440b0 __va_list_tag> chain
<field_decl
0x200008460c0 __offset>>
pointer_to_this <pointer_type 0x20000b4c210>>
addressable used asm-frame-size 0 BLK file
../../source/gcc/libgcov.c line 818 size <integer_cst 0x20000820ea0
128> unit size <integer_cst 0x20000820ed0 16>
align 64 context <function_decl 0x20000b08300 __gcov_execl>
LLVM: %struct.va_list* %ap chain <var_decl 0x20000b44300 aq>>
DestLoc is 0.
Anyone have a suggestion on how to fix this?
Thanks,
Andrew