[LLVMbugs] [Bug 131] NEW: [llvm-gcc] Funky struct casting: "tree not supported by llvm"

bugzilla-daemon at zion.cs.uiuc.edu bugzilla-daemon at zion.cs.uiuc.edu
Tue Nov 18 14:15:00 PST 2003


http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=131

           Summary: [llvm-gcc] Funky struct casting: "tree not supported by
                    llvm"
           Product: tools
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: llvm-gcc
        AssignedTo: sabre at nondot.org
        ReportedBy: brukman+bugs at uiuc.edu


Reduced from linux-2.4.22/arch/x86/kernel/pageattr.c

% cat pageattr.i
typedef struct { unsigned long pgprot; } pgprot_t;

void split_large_page(unsigned long addr, pgprot_t prot)
{
  (addr ? prot : ((pgprot_t) { 0x001 } )).pgprot;
}
% llvm-gcc pageattr.i
ERROR: In function c_llvm_expand_lvalue_expr:5607, tree not handled by LLVM yet!
 <cond_expr 0x40019840
    type <record_type 0x40277e00 pgprot_t type_0 SI
        size <integer_cst 0x4001b7d0 constant 32>
        unit size <integer_cst 0x4001b7f8 constant 4>
        align 32 symtab 0 alias set -1
        fields <field_decl 0x40277c40 pgprot type <integer_type 0x4001d540 long
unsigned int>
            unsigned SI file pageattr.i line 429
            size <integer_cst 0x4001b208 constant 32>
            unit size <integer_cst 0x4001b294 constant 4>
            align 32 offset_align 32
            offset <integer_cst 0x4001b884 constant 0>
            bit offset <integer_cst 0x4001b924 constant 0> context <record_type
0x40277cb0> arguments <integer_cst 0x4001b884 0>> context <translation_unit_decl
0x4001d070>>
    side-effects
    arg 0 <eq_expr 0x4026a570
        type <integer_type 0x4001d3f0 int SI size <integer_cst 0x4001b208 32>
unit size <integer_cst 0x4001b294 4>
            align 32 symtab 0 alias set -1 precision 32 min <integer_cst
0x4001b26c -2147483648> max <integer_cst 0x4001b280 2147483647>
            pointer_to_this <pointer_type 0x4022abd0>>
       
        arg 0 <parm_decl 0x40277e70 addr type <integer_type 0x4001d540 long
unsigned int>
            unsigned used SI file pageattr.i line 431 size <integer_cst
0x4001b208 32> unit size <integer_cst 0x4001b294 4>
            align 32 context <function_decl 0x40279000 split_large_page> result
<integer_type 0x4001d540 long unsigned int> initial <integer_type 0x4001d540
long unsigned int> arg-type <integer_type 0x4001d540 long unsigned int>
arg-type-as-written <integer_type 0x4001d540 long unsigned int> chain <parm_decl
0x40277ee0 prot>>
        arg 1 <integer_cst 0x40278c1c constant 0>>
    arg 1 <compound_literal_expr 0x40278ce4 type <record_type 0x40277e00 pgprot_t>
        side-effects
        arg 0 <decl_stmt 0x40278cd0 arg 0 <var_decl 0x40279150>>>
    arg 2 <parm_decl 0x40277ee0 prot type <record_type 0x40277e00 pgprot_t>
        used SI file pageattr.i line 431 size <integer_cst 0x4001b7d0 32> unit
size <integer_cst 0x4001b7f8 4>
        align 32 context <function_decl 0x40279000 split_large_page> result
<record_type 0x40277e00 pgprot_t> initial <record_type 0x40277e00 pgprot_t>
arg-type <record_type 0x40277e00 pgprot_t> arg-type-as-written <record_type
0x40277e00 pgprot_t>>>
pageattr.i: In function `split_large_page':

pageattr.i:433: internal compiler error: in c_llvm_expand_lvalue_expr, at
llvm-expand.c:5607
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://llvm.cs.uiuc.edu> for instructions.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list