http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52691
Bug #: 52691 Summary: va_start to builtin_next_arg optimization lost Classification: Unclassified Product: gcc Version: tree-ssa Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: big...@acm.org In the commit below, the following edit was made which inverted the sense of the test, preventing the optimization from applying when it should. A ! must be inserted before builtin_decl_explicit_p. diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index e207e23..31c31c1 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -2175,7 +2175,7 @@ optimize_stdarg_builtin (gimple call) case BUILT_IN_VA_START: if (!va_list_simple_ptr || targetm.expand_builtin_va_start != NULL - || built_in_decls[BUILT_IN_NEXT_ARG] == NULL) + || builtin_decl_explicit_p (BUILT_IN_NEXT_ARG)) return NULL_TREE; if (gimple_call_num_args (call) != 2) commit b9a1687032fc1afb5f4e9d8dfa775a134abe21ba Author: meissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Oct 11 19:55:09 2011 +0000 Convert standard builtin functions from being arrays to using a functional interface git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179820 138bc75d-0d04-0410-961f-82ee72b054a4