aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Carlini <paolo.carlini@oracle.com>2013-08-12 22:54:13 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2013-08-12 22:54:13 +0000
commit97524ab728612c584af459c78164a47b0b0f1a9d (patch)
treeaa35184b4099eb9bb846ec4e05f3b8cd580b3b50
parent2e507b9a9988d4cba9d03d7abb94c0f870952bba (diff)
downloadgcc-97524ab728612c584af459c78164a47b0b0f1a9d.zip
gcc-97524ab728612c584af459c78164a47b0b0f1a9d.tar.gz
gcc-97524ab728612c584af459c78164a47b0b0f1a9d.tar.bz2
re PR c++/57416 (internal compiler error: in gimple_expand_cfg, at cfgexpand.c:4575)
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57416 * g++.dg/cpp0x/pr57416.C: New. From-SVN: r201672
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/cpp0x/pr57416.C45
2 files changed, 50 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 80ed59d..e6a2d8b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
+ PR c++/57416
+ * g++.dg/cpp0x/pr57416.C: New.
+
+2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
+
* g++.dg/cpp0x/constexpr-function2.C: Adjust for error -> inform
changes.
* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
diff --git a/gcc/testsuite/g++.dg/cpp0x/pr57416.C b/gcc/testsuite/g++.dg/cpp0x/pr57416.C
new file mode 100644
index 0000000..104f1a7
--- /dev/null
+++ b/gcc/testsuite/g++.dg/cpp0x/pr57416.C
@@ -0,0 +1,45 @@
+// PR c++/57416
+// { dg-do compile { target c++11 } }
+
+struct Nothing
+{
+};
+
+template <class PARENTDATA>
+void func3 (PARENTDATA & p_parent_data)
+{
+ struct Data
+ {
+ PARENTDATA & parent_data = p_parent_data; // { dg-error "parameter" }
+ } data;
+}
+
+template <class PARENTDATA>
+void func2 (PARENTDATA & p_parent_data)
+{
+ struct Data
+ {
+ PARENTDATA & parent_data = p_parent_data; // { dg-error "parameter" }
+ } data;
+
+ data.parent_data.x = 5;
+ func3(data);
+}
+
+template <class PARENTDATA>
+void func1 (PARENTDATA & p_parent_data)
+{
+ struct Data
+ {
+ PARENTDATA & parent_data = p_parent_data; // { dg-error "parameter" }
+ int x = 1;
+ } data;
+
+ func2(data);
+}
+
+int main()
+{
+ Nothing nothing;
+ func1(nothing);
+}