From: Thomas Schwinge Date: Wed, 16 Jul 2025 20:13:46 +0000 (+0200) Subject: GCN, nvptx offloading: Restrain 'WARNING: program timed out.' while in 'dynamic_cast... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=aa143261bdf6db4334b3fcad7768b53e231f998e;p=thirdparty%2Fgcc.git GCN, nvptx offloading: Restrain 'WARNING: program timed out.' while in 'dynamic_cast' only for effective-target 'offload_device' [PR119692] In PR119692 "C++ 'typeinfo', 'vtable' vs. OpenACC, OpenMP 'target' offloading": > --- Comment #8 from Rainer Orth --- > The last commit made things worse on sparc-sun-solaris2.11: since that one > (dg-timeout 10) I regularly get > > WARNING: libgomp.c++/target-exceptions-bad_cast-1.C (test for excess errors) > program timed out. > FAIL: libgomp.c++/target-exceptions-bad_cast-1.C (test for excess errors) > UNRESOLVED: libgomp.c++/target-exceptions-bad_cast-1.C compilation failed to produce executable > UNRESOLVED: libgomp.c++/target-exceptions-bad_cast-1.C scan-tree-dump-times optimized "gimple_call <__cxa_bad_cast, " 1 > > Before that, the test had no issue. Compiling the test on an unloaded system > usually takes less than 1 sec, but when fully loaded, times can go up. To keep things simple, let's restrict this temporary (yeah...) workaround to apply only for effective-target 'offload_device', just like the 'dg-xfail-run-if' itself. PR target/119692 libgomp/ * testsuite/libgomp.c++/pr119692-1-4.C: '{ dg-timeout 10 { target offload_device } }'. * testsuite/libgomp.c++/pr119692-1-5.C: Likewise. * testsuite/libgomp.c++/target-exceptions-bad_cast-1.C: Likewise. * testsuite/libgomp.c++/target-exceptions-bad_cast-2.C: Likewise. * testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C: Likewise. * testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C: Likewise. --- diff --git a/libgomp/testsuite/libgomp.c++/pr119692-1-4.C b/libgomp/testsuite/libgomp.c++/pr119692-1-4.C index af9fe1c8c18..d329ad394f0 100644 --- a/libgomp/testsuite/libgomp.c++/pr119692-1-4.C +++ b/libgomp/testsuite/libgomp.c++/pr119692-1-4.C @@ -5,7 +5,7 @@ { dg-xfail-run-if PR119692 { offload_device } } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */ /* { dg-additional-options -fdump-tree-gimple } */ #include "pr119692-1-1.C" diff --git a/libgomp/testsuite/libgomp.c++/pr119692-1-5.C b/libgomp/testsuite/libgomp.c++/pr119692-1-5.C index e5c6e077fc8..6bbe1864fa5 100644 --- a/libgomp/testsuite/libgomp.c++/pr119692-1-5.C +++ b/libgomp/testsuite/libgomp.c++/pr119692-1-5.C @@ -5,7 +5,7 @@ { dg-xfail-run-if PR119692 { offload_device } } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */ /* { dg-additional-options -fdump-tree-gimple } */ #include "pr119692-1-1.C" diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-1.C b/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-1.C index a862652f4a8..4158eced10b 100644 --- a/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-1.C +++ b/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-1.C @@ -25,4 +25,4 @@ { dg-shouldfail {'std::bad_cast' exception} } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */ diff --git a/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2.C b/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2.C index ff15c9fa61f..ca72e577f76 100644 --- a/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2.C +++ b/libgomp/testsuite/libgomp.c++/target-exceptions-bad_cast-2.C @@ -24,4 +24,4 @@ { dg-shouldfail {'MyException' exception} { offload_device } } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */ diff --git a/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C b/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C index 6957a6caec7..e6cbe17f414 100644 --- a/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C +++ b/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-1.C @@ -54,4 +54,4 @@ int main() { dg-shouldfail {'std::bad_cast' exception} } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */ diff --git a/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C b/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C index 0f84cf212c2..599425ff3ee 100644 --- a/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C +++ b/libgomp/testsuite/libgomp.oacc-c++/exceptions-bad_cast-2.C @@ -60,4 +60,4 @@ int main() { dg-shouldfail {'std::bad_cast' exception} { ! openacc_host_selected } } */ /* There are configurations where we 'WARNING: program timed out.' while in 'dynamic_cast', see . - { dg-timeout 10 } ... to make sure that happens quickly. */ + { dg-timeout 10 { target offload_device } } ... to make sure that happens quickly. */