From: Andrew MacLeod Date: Mon, 1 Nov 2021 20:20:59 +0000 (-0400) Subject: Check for constant builtin value first. X-Git-Tag: basepoints/gcc-13~3445 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b18394ce15639489a91a502d3b9db30d73898191;p=thirdparty%2Fgcc.git Check for constant builtin value first. The original code imported from EVRP for evaluating built_in_constant_p didn't check to see if the value was a constant before checking the inlining flag. Now we check for a constant first. * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Test for constant before any other processing. --- diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc index 2fab904e6b09..6cc7753a750d 100644 --- a/gcc/gimple-range-fold.cc +++ b/gcc/gimple-range-fold.cc @@ -960,18 +960,18 @@ fold_using_range::range_of_builtin_call (irange &r, gcall *call, switch (func) { case CFN_BUILT_IN_CONSTANT_P: - if (cfun->after_inlining) - { - r.set_zero (type); - // r.equiv_clear (); - return true; - } arg = gimple_call_arg (call, 0); if (src.get_operand (r, arg) && r.singleton_p ()) { r.set (build_one_cst (type), build_one_cst (type)); return true; } + if (cfun->after_inlining) + { + r.set_zero (type); + // r.equiv_clear (); + return true; + } break; case CFN_BUILT_IN_TOUPPER: