------- Comment #3 from laurent at guerby dot net 2009-01-05 15:38 ------- <jakub> guerby: I guess the interesting thing is how could non-NULL be passed there, step through expand_call and see if get_callee_fndecl returned non-NULL or where fndecl became non-NULL
<guerby> fndecl seems to be NULL <guerby> Breakpoint 4, emit_call_1 (funexp=0x2aaaab02a840, fntree=0x2aaaaaf4aa50, fndecl=0x0, funtype=0x2aaaaaf6dd80, stack_size=0, rounded_stack_size=0, struct_value_size=140737488347167, next_arg_reg=0x0, <guerby> valreg=0x5e94c7, old_inhibit_defer_pop=-1426709664, call_fusage=0x17, ecf_flags=-1426820016, args_so_far=0x0) at /home/mstein/svn/trunk/gcc/calls.c:249 <guerby> jakub most targets file use "TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)" <guerby> instead of directly DECL_SECTION_NAME (exp) as arm.c:arm_function_in_section_p does /* Return true if DECL is known to be linked into section SECTION. */ static bool arm_function_in_section_p (tree decl, section *section) { /* We can only be certain about functions defined in the same compilation unit. */ if (!TREE_STATIC (decl)) return false; /* Make sure that SYMBOL always binds to the definition in this compilation unit. */ if (!targetm.binds_local_p (decl)) return false; /* If DECL_SECTION_NAME is set, assume it is trustworthy. */ if (!DECL_SECTION_NAME (decl)) { /* Make sure that we will not create a unique section for DECL. */ if (flag_function_sections || DECL_ONE_ONLY (decl)) return false; } return function_section (decl) == section; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38695