aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc')
-rw-r--r--gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc39
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc b/gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc
new file mode 100644
index 000000000..83bb18375
--- /dev/null
+++ b/gcc-4.8/gcc/testsuite/g++.dg/vect/pr60836.cc
@@ -0,0 +1,39 @@
+// { dg-do compile }
+
+int a, b;
+typedef double (*NormFunc) (const int &);
+int &
+max (int &p1, int &p2)
+{
+ if (p1 < p2)
+ return p2;
+ return p1;
+}
+
+struct A
+{
+ int operator () (int p1, int p2)
+ {
+ return max (p1, p2);
+ }
+};
+template < class, class > double
+norm_ (const int &)
+{
+ char c, d;
+ A e;
+ for (; a; a++)
+ {
+ b = e (b, d);
+ b = e (b, c);
+ }
+}
+
+void
+norm ()
+{
+ static NormFunc f = norm_ < int, A >;
+ f = 0;
+}
+
+// { dg-final { cleanup-tree-dump "vect" } }