https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69044
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Hello
(gdb) p thunk->debug()
strncasecmp/1 (strncasecmp) @0x7ffff69ec000
Type: function definition analyzed
Visibility: externally_visible public
Aux: @0x1f39050 References: strncasecmp.chkp/4 (chkp)
Referring:
Availability: available
First run: 0
Function flags:
Thunk fixed offset 0 virtual value 0 has virtual offset 0)
Called by: special_command.chkp/3 (1.00 per call)
Calls: strncasecmp.chkp/4 (1.00 per call)
Has instrumented version.
$1 = void
(gdb) p node->debug()
strncasecmp.chkp.constprop.1/8 (strncasecmp.chkp.constprop) @0x7ffff69ec730
Type: function definition analyzed
Visibility: public artificial
References:
Referring:
Availability: local
First run: 0
Function flags: local
Called by:
Calls:
As 'thunk' has set DECL_INITIAL:
(gdb) p debug_tree(thunk->decl.decl_common.initial)
<block 0x7ffff69eb000 used
supercontext <function_decl 0x7ffff69559a0 strncasecmp
type <function_type 0x7ffff69d2540 type <integer_type 0x7ffff68d17e0
int>
QI
size <integer_cst 0x7ffff68cdd98 constant 8>
unit size <integer_cst 0x7ffff68cddb0 constant 1>
align 8 symtab 0 alias set -1 canonical type 0x7ffff69d2000
attributes <tree_list 0x7ffff69565c8
purpose <identifier_node 0x7ffff68f13c0 nonnull>>
arg-types <tree_list 0x7ffff69d1b18 value <pointer_type
0x7ffff68efbd0>
chain <tree_list 0x7ffff69d1af0 value <pointer_type
0x7ffff68efbd0>
chain <tree_list 0x7ffff69d1ac8 value <integer_type
0x7ffff68d1930 long int>
chain <tree_list 0x7ffff68e17a8 value <void_type
0x7ffff68eb150 void>>>>>
pointer_to_this <pointer_type 0x7ffff69d2498>>
readonly addressable used nothrow public static built-in decl_3 decl_5
QI file /home/marxin/Programming/testcases/PR69044/tc.i line 2 col 5
align 8 built-in BUILT_IN_NORMAL:BUILT_IN_STRNCASECMP context
<translation_unit_decl 0x7ffff68d9258 D.1774> attributes <tree_list
0x7ffff69566b8> initial <block 0x7ffff69eb000>
result <result_decl 0x7ffff68d9168 D.1771 type <integer_type
0x7ffff68d17e0 int>
ignored SI file /home/marxin/Programming/testcases/PR69044/tc.i
line 2 col 5
size <integer_cst 0x7ffff68cdee8 constant 32>
unit size <integer_cst 0x7ffff68cdf00 constant 4>
align 32 context <function_decl 0x7ffff69559a0 strncasecmp>>
chain <function_decl 0x7ffff6955a80 __builtin_strncat type
<function_type 0x7ffff6952f18>
nothrow public external built-in decl_6 QI file <built-in> line 0
col 0
align 8 built-in BUILT_IN_NORMAL:BUILT_IN_STRNCAT context
<translation_unit_decl 0x7ffff68d9258 D.1774> attributes <tree_list
0x7ffff6956730> chain <function_decl 0x7ffff6955b60 strncat>>>>
The block is copied at:
290 if (!node->clone.args_to_skip)
291 new_decl = copy_node (thunk->decl);
That's the way how the checking_assert is triggered.
Martin