ipa/100791 - copy fntype when processing __builtin_va_arg_pack
This missing copying exposed a type mismatch in the IL. 2021-05-28 Richard Biener <rguenther@suse.de> PR ipa/100791 * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack copy fntype from original call. * gcc.dg/pr100791.c: New testcase.
This commit is contained in:
parent
8b2b32ab2d
commit
359c0a86e2
2 changed files with 10 additions and 0 deletions
9
gcc/testsuite/gcc.dg/pr100791.c
Normal file
9
gcc/testsuite/gcc.dg/pr100791.c
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "" } */
|
||||
|
||||
static inline int __attribute__((__always_inline__))
|
||||
foo ()
|
||||
{
|
||||
return log_bad_request(0, __builtin_va_arg_pack()); /* { dg-warning "implicit" } */
|
||||
}
|
||||
void log_bad_request() { foo (0); } /* { dg-warning "conflicting types" } */
|
|
@ -2100,6 +2100,7 @@ copy_bb (copy_body_data *id, basic_block bb,
|
|||
GF_CALL_VA_ARG_PACK. */
|
||||
gimple_call_copy_flags (new_call, call_stmt);
|
||||
gimple_call_set_va_arg_pack (new_call, false);
|
||||
gimple_call_set_fntype (new_call, gimple_call_fntype (call_stmt));
|
||||
/* location includes block. */
|
||||
gimple_set_location (new_call, gimple_location (stmt));
|
||||
gimple_call_set_lhs (new_call, gimple_call_lhs (call_stmt));
|
||||
|
|
Loading…
Add table
Reference in a new issue