re PR c/77754 (internal compiler error : tree code 'call_expr' is not supported in...
authorJakub Jelinek <jakub@redhat.com>
Mon, 25 Feb 2019 22:58:45 +0000 (23:58 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 25 Feb 2019 22:58:45 +0000 (23:58 +0100)
PR c/77754
* gcc.c-torture/compile/pr77754-1.c: New test.
* gcc.c-torture/compile/pr77754-2.c: New test.
* gcc.c-torture/compile/pr77754-3.c: New test.
* gcc.c-torture/compile/pr77754-4.c: New test.
* gcc.c-torture/compile/pr77754-5.c: New test.
* gcc.c-torture/compile/pr77754-6.c: New test.

From-SVN: r269197

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/compile/pr77754-1.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr77754-2.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr77754-3.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr77754-4.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr77754-5.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/compile/pr77754-6.c [new file with mode: 0644]

index 3e89a7d09cb77279c99148d0b9cad4b9fc172a57..dcd7c6743077ce9bc751b782ddcb56b87d955f82 100644 (file)
@@ -1,3 +1,13 @@
+2019-02-25  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/77754
+       * gcc.c-torture/compile/pr77754-1.c: New test.
+       * gcc.c-torture/compile/pr77754-2.c: New test.
+       * gcc.c-torture/compile/pr77754-3.c: New test.
+       * gcc.c-torture/compile/pr77754-4.c: New test.
+       * gcc.c-torture/compile/pr77754-5.c: New test.
+       * gcc.c-torture/compile/pr77754-6.c: New test.
+
 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
 
        PR target/88530
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-1.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-1.c
new file mode 100644 (file)
index 0000000..48587f7
--- /dev/null
@@ -0,0 +1,11 @@
+/* PR c/77754 */
+
+int fn3();
+
+void fn4(int[][fn3 ()]);
+
+void fn1() {
+  void fn2(int[][fn3 ()]);
+  int a[10][fn3 ()];
+  fn4 (a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-2.c
new file mode 100644 (file)
index 0000000..411f270
--- /dev/null
@@ -0,0 +1,10 @@
+/* PR c/77754 */
+
+int fn3();
+
+void (**fn5) (int[][fn3 ()]);
+
+void fn1 () {
+  int a[10][fn3 ()];
+  (**fn5) (a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-3.c
new file mode 100644 (file)
index 0000000..c6ff960
--- /dev/null
@@ -0,0 +1,11 @@
+/* PR c/77754 */
+
+int fn3();
+
+typedef void (*fn6) (int[][fn3 ()]);
+fn6 **fn7;
+
+void fn1 () {
+  int a[10][fn3 ()];
+  (**fn7) (a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-4.c
new file mode 100644 (file)
index 0000000..f027405
--- /dev/null
@@ -0,0 +1,17 @@
+/* PR c/77754 */
+
+int fn3();
+
+typedef void (*fn6) (int[][fn3 ()]);
+struct S {
+  fn6 **fn7;
+  fn6 *fn8;
+  fn6 fn9;
+} s;
+
+void fn1 () {
+  int a[10][fn3 ()];
+  (**s.fn7) (a);
+  (*s.fn8) (a);
+  s.fn9 (a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-5.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-5.c
new file mode 100644 (file)
index 0000000..a9440dd
--- /dev/null
@@ -0,0 +1,14 @@
+/* PR c/77754 */
+
+int fn3();
+
+void fn4(int[][fn3 ()]);
+void fn4(int x[][fn3 ()])
+{
+}
+
+void fn1() {
+  void fn2(int[][fn3 ()]);
+  int a[10][fn3 ()];
+  fn4 (a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr77754-6.c b/gcc/testsuite/gcc.c-torture/compile/pr77754-6.c
new file mode 100644 (file)
index 0000000..2e7df3b
--- /dev/null
@@ -0,0 +1,10 @@
+/* PR c/77754 */
+
+int fn3();
+
+void fn4(int (*)[fn3 ()][fn3 () + 1][fn3 () + 2], struct S { int a[fn3 ()]; } *);
+
+void fn1() {
+  int a[10][fn3 ()][fn3 () + 1][fn3 () + 2];
+  fn4 (a, 0);
+}