------- Comment #43 from danglin at gcc dot gnu dot org 2009-03-21 18:53 ------- This is the decl passed to can_be_nonlocal:
(gdb) p debug_tree (decl) <var_decl 0x60b45148 __y type <complex_type 0x604cab28 complex double type <real_type 0x604ca578 double sizes-gimplified asm_written type_6 DF size <integer_cst 0x60c0e900 constant 64> unit size <integer_cst 0x60c0e940 constant 8> align 64 symtab 1614619136 alias set 22 canonical type 0x604ca578 precision 64 pointer_to_this <pointer_type 0x604ca6b0> reference_to_this <reference_type 0x607156c8>> sizes-gimplified asm_written type_6 DC size <integer_cst 0x60cc44a0 constant 128> unit size <integer_cst 0x60c0eb00 constant 16> align 64 symtab 1614710336 alias set 24 canonical type 0x604cab28 pointer_to_this <pointer_type 0x604e3260>> in_system_header DC file /home/dave/gnu/gcc-4.4/objdir/hppa-linux/libstdc++-v3/include/complex line 1004 col 52 size <integer_cst 0x60cc44a0 128> unit size <integer_cst 0x60c0eb00 16> align 64 context <function_decl 0x40107c80 pow> abstract_origin <parm_decl 0x60809ee0 __y> chain <var_decl 0x60b450f0 __x>> $45 = void (gdb) p decl->decl_common.decl_flag_3 $46 = 0 It returns true. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39355