Avoid g++.dg/lto/alias-4_0.C test failure on ARM [PR91322]
authorJan Hubicka <jh@suse.cz>
Thu, 9 Apr 2020 12:12:36 +0000 (14:12 +0200)
committerJan Hubicka <jh@suse.cz>
Thu, 9 Apr 2020 12:12:36 +0000 (14:12 +0200)
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
gcc/testsuite/g++.dg/lto/alias-4_0.C

index 991241ee27f2b3528b4381dc5288d827fb84d4f1..fac41ca63b5d1fafcd1026946cab5824aeac3bdf 100644 (file)
@@ -1,3 +1,9 @@
+2020-04-09  Jan Hubicka  <hubicka@ucw.cz>
+
+       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  <richard.sandiford@arm.com>
 
        * lib/scanasm.exp (check-function-bodies): Treat the third
index 410c3140bafb1223105da57e4d786364c167d072..3d3863247538d3c1ac7c6c94e75cce9b07ecbca0 100644 (file)
@@ -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"  } } */