aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2020-10-27 07:29:42 +0100
committerAldy Hernandez <aldyh@redhat.com>2020-10-27 07:30:52 +0100
commit18cb6195fda69ea8ab8b8a5290dd8c9f8d52b0e6 (patch)
tree49d1c3e2da8cd9b1fdc576f880e99596d393aaca /gcc
parent15c908807e8865e5bda12942a68bc919a4a2957d (diff)
downloadgcc-18cb6195fda69ea8ab8b8a5290dd8c9f8d52b0e6.zip
gcc-18cb6195fda69ea8ab8b8a5290dd8c9f8d52b0e6.tar.gz
gcc-18cb6195fda69ea8ab8b8a5290dd8c9f8d52b0e6.tar.bz2
Add test for pr97560.
gcc/testsuite/ChangeLog: PR tree-optimization/97560 * g++.dg/pr97560.C: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/g++.dg/pr97560.C44
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/pr97560.C b/gcc/testsuite/g++.dg/pr97560.C
new file mode 100644
index 0000000..f9e7edf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/pr97560.C
@@ -0,0 +1,44 @@
+// { dg-do compile }
+// { dg-options "-O2 -fno-tree-forwprop -fnon-call-exceptions" }
+
+template <typename>
+struct pv;
+
+template <typename CY>
+struct pv<CY &> {
+ typedef CY g7;
+};
+
+template <typename Q6>
+typename pv<Q6>::g7 hq (Q6 &&lb)
+{
+ return static_cast<typename pv<Q6>::g7 &&> (lb);
+}
+
+struct fk {
+ fk *j6;
+ fk *od;
+};
+
+fk *qi;
+
+struct xz : fk {
+ xz (xz &&)
+ {
+ qi = this;
+
+ if (j6)
+ od = this;
+ }
+};
+
+struct el {
+ struct {
+ xz ls;
+ } eu;
+};
+
+struct be : el {
+};
+
+be l1 = hq (l1);