diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/opt')
-rw-r--r-- | gcc/testsuite/g++.dg/opt/pr70847.C | 11 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/pr71528.C | 23 |
2 files changed, 34 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/opt/pr70847.C b/gcc/testsuite/g++.dg/opt/pr70847.C new file mode 100644 index 00000000000..2b5435317cb --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr70847.C @@ -0,0 +1,11 @@ +// PR c++/70847 +// { dg-do compile } + +struct D { virtual D& f(); }; + +void +g() +{ + D d; + d.f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f().f(); +} diff --git a/gcc/testsuite/g++.dg/opt/pr71528.C b/gcc/testsuite/g++.dg/opt/pr71528.C new file mode 100644 index 00000000000..bfe06220472 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr71528.C @@ -0,0 +1,23 @@ +// PR c++/71528 +// { dg-do run } +// { dg-options "-O2" } + +extern int &x; +int y; + +int & +foo () +{ + return y; +} + +int &x = foo (); + +int +main () +{ + if (&x != &y) + __builtin_abort (); +} + +extern int &x; |