[LLVMdev] Re: Re: Re: Re: Re: New GCC4-based C/C++/ObjC front-end for LLVM

Vladimir Prus ghost at cs.msu.su
Thu Mar 16 03:22:25 PST 2006

Vladimir Prus wrote:

> So, it looks either the snapshot is not in stable state, or there's
> something seriously wrong with type name handling. At this point I gave up
> on quickly fixing this, so I've applied the third attached patch to LLVM,
> which "fixes" this issue completely.

Ah, hell, as soon as I've send this email I've updated from CVS to find that
the issue was fixed by Jim several hours after I reported the crash, by
making MachineDebugInfo don't check for empty name of type.

> After that, the frontend itself builds (the gcc directory), and "llvm-g++
> -emit-llvm -S some_file.cpp") works. I did not do deep testing.
> On the other hand, I still get segfaults when building libstdc++. I'll
> look at them as soon as this "type name in debug info" is solved or
> workarounded either in LLVM CVS or in your frontend.

Here's what I get now:

internal compiler error: in make_decl_rtl, at varasm.c:1018

(gdb) where
#0  internal_error (gmsgid=0x8a02d8f "make_decl_rtl")
    at ../../2006-03-14-llvm-gcc-4/gcc/diagnostic.c:532
#1  0x082bf22f in fancy_abort (file=0x8a02d8f "make_decl_rtl", line=1018,
    function=0x8a02d8f "make_decl_rtl")
at ../../2006-03-14-llvm-gcc-4/gcc/diagnostic.c:588
#2  0x084c0c5c in make_decl_rtl (decl=0xb7b9d618)
at ../../2006-03-14-llvm-gcc-4/gcc/varasm.c:1018
#3  0x084c8207 in assemble_alias (decl=0xb7b9d618, target=0xb698fe00)
    at ../../2006-03-14-llvm-gcc-4/gcc/varasm.c:4765
#4  0x084d05e6 in rest_of_decl_compilation (decl=0xb7b9d618, top_level=1,
    at ../../2006-03-14-llvm-gcc-4/gcc/passes.c:204

Printing  decl in frame 2 gives:

(gdb) call debug_tree(decl)
 <function_decl 0xb7b9d618
    type <function_type 0xb7ab7e88
        type <void_type 0xb7ab5b40 void sizes-gimplified type_6 VOID
            align 8 symtab 146744576 alias set -1
            pointer_to_this <pointer_type 0xb7ab5bb8>>
        type_6 QI
        size <integer_cst 0xb7aa139c constant invariant 8>
        unit size <integer_cst 0xb7aa13b8 constant invariant 1>
        align 8 symtab 0 alias set -1
        arg-types <tree_list 0xb7aa1efc value <void_type 0xb7ab5b40 void>>
        pointer_to_this <pointer_type 0xb7121ca8>>
    public external asm-frame-size 0 no-static-chain decl_2 QI
file /space/p2/ghost/build/llvm-frontend/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu/bits/compatibility.h
line 42 context<namespace_decl 0xb720a1e0 __gnu_internal> attributes
<tree_list 0xb7137bd0> initial <error_mark 0xb7aa12d8>
    chain <template_decl 0xb720aac8 __test_type>>

Preprocessed source goes by private email.

- Volodya

More information about the llvm-dev mailing list