From f60979edbfcf6ce2cbf2cb09b8af8c125ff7774f Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Thu, 9 Apr 2020 14:12:36 +0200 Subject: [PATCH] Avoid g++.dg/lto/alias-4_0.C test failure on ARM [PR91322] PR tree-optimization/91322 * g++.dg/lto/alias-4_0.C: Avoid conflict with va_list on ARM and add a template testing that. --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/g++.dg/lto/alias-4_0.C | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 991241ee27f..fac41ca63b5 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2020-04-09 Jan Hubicka + + PR tree-optimization/91322 + * g++.dg/lto/alias-4_0.C: Avoid conflict with va_list on ARM and add + a template testing that + 2020-04-09 Richard Sandiford * lib/scanasm.exp (check-function-bodies): Treat the third diff --git a/gcc/testsuite/g++.dg/lto/alias-4_0.C b/gcc/testsuite/g++.dg/lto/alias-4_0.C index 410c3140baf..3d386324753 100644 --- a/gcc/testsuite/g++.dg/lto/alias-4_0.C +++ b/gcc/testsuite/g++.dg/lto/alias-4_0.C @@ -1,11 +1,14 @@ /* { dg-lto-do run } */ -/* { dg-lto-options { { -O3 -flto -fno-early-inlining } } } */ +/* { dg-lto-options { { -O3 -flto -fno-early-inlining -fdump-ipa-cgraph} } } */ __attribute__ ((used)) short *ptr_init, **ptr=&ptr_init; __attribute__ ((used)) struct a { int *aptr; + /* On ARM va_list is an anonymous structure containing pointer. + This disable ODR TBAA on it. */ + short b; } a, *aptr=&a; void @@ -29,3 +32,6 @@ main() test (); return 0; } +/* On ARM the testcase used to fial because struct a got in conflict with builtin + va_list type. Check that this does not happen. */ +/* { dg-final { scan-wpa-ipa-dump-not "ODR and non-ODR type conflict" "cgraph" } } */ -- 2.30.2