PRU and other simulator targets do not pass any argv arguments to main. Instead of erroneously relying on argc==0, use a volatile variable instead.
I reverted the fix for PR67947 in r6-3891-g8a18fcf4aa1d5c, and made sure that the updated test case still fails for x86_64: $ make check-gcc-c RUNTESTFLAGS="dg-torture.exp=pr67947.c" ... FAIL: gcc.dg/torture/pr67947.c -O1 execution test ... # of expected passes 8 # of unexpected failures 8 Fix was suggested by Andrew Pinski in PR116154. Committed as obvious. PR testsuite/116154 gcc/testsuite/ChangeLog: * gcc.dg/torture/pr67947.c: Use volatile variable instead of argc. Signed-off-by: Dimitar Dimitrov <dimi...@dinux.eu> --- gcc/testsuite/gcc.dg/torture/pr67947.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/torture/pr67947.c b/gcc/testsuite/gcc.dg/torture/pr67947.c index 368a8b20cbf..1016f2579cb 100644 --- a/gcc/testsuite/gcc.dg/torture/pr67947.c +++ b/gcc/testsuite/gcc.dg/torture/pr67947.c @@ -11,11 +11,13 @@ __attribute__((noinline, noclone)) void foo (int x) c++; } +volatile int t = 1; + int main (int argc, char* argv[]) { int j, k, b = 0; - if (argc == 0) + if (t == 0) b = 1; for (j = 0; j < 3; j++) for (k = 0; k < 1; k++) -- 2.45.2