This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/50691] Incorrect argument evaluation in call with __thread argument


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50691

--- Comment #4 from John David Anglin <danglin at gcc dot gnu.org> 2011-10-21 12:17:11 UTC ---
The following tree is incorrectly expanded bt expand call:

(gdb) p debug_tree (exp)
 <call_expr 0x403bf730
    type <integer_type 0x4036c3c0 int public SI
        size <integer_cst 0x40362510 constant 32>
        unit size <integer_cst 0x40362528 constant 4>
        align 32 symtab 0 alias set 2 canonical type 0x4036c3c0 precision 32
min <integer_cst 0x40362780 -2147483648> max <integer_cst 0x40362798
2147483647>
        pointer_to_this <pointer_type 0x4036cae0>>
    side-effects
    fn <addr_expr 0x403da738
        type <pointer_type 0x403cff00 type <function_type 0x403cfde0>
            unsigned SI size <integer_cst 0x40362510 32> unit size <integer_cst
0x40362528 4>
            align 32 symtab 0 alias set -1 canonical type 0x403cff00>
        constant
        arg 0 <function_decl 0x403dbf00 bar type <function_type 0x403cfde0>
            addressable used public external decl_5 SI file xxx.c line 2 col 12
align 32 context <translation_unit_decl 0x40377e00 D.1216> chain <function_decl
0x403dbf80 foo>>>
    arg 0 <addr_expr 0x403da660
        type <pointer_type 0x4036cae0 type <integer_type 0x4036c3c0 int>
            unsigned SI size <integer_cst 0x40362510 32> unit size <integer_cst
0x40362528 4>
            align 32 symtab 0 alias set -1 canonical type 0x4036cae0>

        arg 0 <parm_decl 0x403e30b0 x type <integer_type 0x4036c3c0 int>
            addressable used SI file xxx.c line 4 col 10 size <integer_cst
0x40362510 32> unit size <integer_cst 0x40362528 4>
            align 32 context <function_decl 0x403dbf80 foo>
            (mem/c/i:SI (plus:SI (reg/f:SI 90 virtual-incoming-args)
        (const_int -4 [0xfffffffc])) [2 x+0 S4 A32]) arg-type <integer_type
0x4036c3c0 int>
            incoming-rtl (reg:SI 26 %r26 [ x ])>
        xxx.c:6:14>
    arg 1 <addr_expr 0x403da678 type <pointer_type 0x4036cae0>

        arg 0 <var_decl 0x403cfd80 y type <integer_type 0x4036c3c0 int>
            addressable used public external tls-global-dynamic SI file xxx.c
line 1 col 21 size <integer_cst 0x40362510 32> unit size <integer_cst
0x40362528 4>
            align 32 context <translation_unit_decl 0x40377e00 D.1216> chain
<function_decl 0x403dbf00 bar>>
        xxx.c:6:14>
    xxx.c:6:3>
$11 = void
(gdb) bt
#0  expand_call (exp=0x403bf730, target=0x403bbe50, ignore=0)
    at ../../gcc/gcc/calls.c:1965
#1  0x0027bdb0 in expand_expr_real_1 (exp=0x403bf730, target=<optimized out>, 
    tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0xfdf02a08)
    at ../../gcc/gcc/expr.c:9934
#2  0x0027a194 in expand_expr_real_1 (exp=0x403bf730, target=<optimized out>, 
    tmode=SImode, modifier=EXPAND_NORMAL, alt_rtl=0xfdf02a08)
    at ../../gcc/gcc/expr.c:9911


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]