Some embedded targets do not pass any argv arguments. When argc is zero, this causes spurious failures for lto/pr101868_0.c. Fix by following the strategy in r0-114701-g2c49569ecea56d. Use a volatile variable instead of argc to inject a runtime value into the test.
I validated the following: - No changes in testresults for x86_64-pc-linux-gnu. - The spurious failures are fixed for PRU target. - lto/pr101868_0.c still fails on x86_64-pc-linux-gnu, if the PR/101868 fix (r12-2254-gfedcf3c476aff7) is reverted. Ok for trunk? PR tree-optimization/101868 gcc/testsuite/ChangeLog: * gcc.dg/lto/pr101868_0.c (zero): New volatile variable. (main): Use it instead of argc. Signed-off-by: Dimitar Dimitrov <dimi...@dinux.eu> --- gcc/testsuite/gcc.dg/lto/pr101868_0.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gcc/testsuite/gcc.dg/lto/pr101868_0.c b/gcc/testsuite/gcc.dg/lto/pr101868_0.c index c84d19b0267..03124308267 100644 --- a/gcc/testsuite/gcc.dg/lto/pr101868_0.c +++ b/gcc/testsuite/gcc.dg/lto/pr101868_0.c @@ -22,12 +22,13 @@ repro(VALUE dummy, VALUE hash) static VALUE (*that)(VALUE dummy, VALUE hash) = repro; +volatile int zero = 0; + int main(int argc, char **argv) { - argc--; - that(0, argc); + that(0, zero); - rb_check_type(argc, argc); + rb_check_type(zero, zero); } -- 2.36.1