re PR tree-optimization/40874 (Function object abstraction penalty with inline functi...
authorRichard Guenther <rguenther@suse.de>
Mon, 23 May 2011 14:36:28 +0000 (14:36 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Mon, 23 May 2011 14:36:28 +0000 (14:36 +0000)
2011-05-23  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/40874
* g++.dg/tree-ssa/pr40874.C: New testcase.

From-SVN: r174068

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/tree-ssa/pr40874.C [new file with mode: 0644]

index e647cb571452dbee00b9634482086299e350da4c..0fd397ce8bac1f7db377ef4bfc328d1a7cdbe06e 100644 (file)
@@ -1,3 +1,8 @@
+2011-05-23  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/40874
+       * g++.dg/tree-ssa/pr40874.C: New testcase.
+
 2011-05-23  Richard Guenther  <rguenther@suse.de>
 
        PR tree-optimization/49115
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr40874.C b/gcc/testsuite/g++.dg/tree-ssa/pr40874.C
new file mode 100644 (file)
index 0000000..d227ff9
--- /dev/null
@@ -0,0 +1,25 @@
+// { dg-do compile }
+// { dg-options "-O -fdump-tree-optimized" }
+
+struct pf
+{
+  inline pf(int(*x)(int)) : x(x) {}
+
+  inline int operator()(int a) const
+    {
+      return x(a);
+    }
+
+  int (*x)(int);
+};
+
+inline int g(int x) { return x/x - 1; }
+
+int main(int argc, char* argv[])
+{
+  pf f(g);
+  return f(3);
+}
+
+// { dg-final { scan-tree-dump "return 0" "optimized" } }
+// { dg-final { cleanup-tree-dump "optimized" } }