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