Hi,
when building the body function of an assumption, its decl temporarily
has variable arguments (gimple-low.cc:293), as the count and types of
arguments are not yet determined. However, after constructing
the arguments list, the function's struct function still has stdarg set.
This patch fixes that. The decl's arguments list is already being
constructed with a void_type_node terminator, so all is good on that front.
Bootstrapped and regtested on aarch64-unknown-linux-gnu. OK for master?
Best regards,
Josef
gcc/ChangeLog:
* gimple-low.cc (lower_assumption): Unset stdarg after
determining the body function's arguments.
Signed-off-by: Josef Melcr <[email protected]>
---
gcc/gimple-low.cc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/gimple-low.cc b/gcc/gimple-low.cc
index 5915d7234e0..ed752429854 100644
--- a/gcc/gimple-low.cc
+++ b/gcc/gimple-low.cc
@@ -673,6 +673,8 @@ lower_assumption (gimple_stmt_iterator *gsi, struct
lower_data *data)
}
DECL_ARGUMENTS (lad.id.dst_fn) = parms;
TREE_TYPE (lad.id.dst_fn) = build_function_type (boolean_type_node, parmt);
+ /* The body function no longer has var. args, unset stdarg. */
+ DECL_STRUCT_FUNCTION (lad.id.dst_fn)->stdarg = 0;
cgraph_node::add_new_function (lad.id.dst_fn, false);
--
2.55.0