aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-11-20 09:32:56 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-11-20 09:32:56 +0100
commitd742b0c1a02aab7fa61b6d89eecee81b298f06c6 (patch)
tree27cfc00bd288f287714d449f817fefcce69e2c67 /gcc/testsuite/gcc.c-torture
parent94cdd3b7ceff688d039a9f134013ac9069df2e8c (diff)
downloadgcc-d742b0c1a02aab7fa61b6d89eecee81b298f06c6.zip
gcc-d742b0c1a02aab7fa61b6d89eecee81b298f06c6.tar.gz
gcc-d742b0c1a02aab7fa61b6d89eecee81b298f06c6.tar.bz2
re PR middle-end/90840 (ICE in simplify_subreg, at simplify-rtx.c:6441)
PR middle-end/90840 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM and has a mode that doesn't have corresponding integral type. * gcc.c-torture/compile/pr90840.c: New test. From-SVN: r278483
Diffstat (limited to 'gcc/testsuite/gcc.c-torture')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr90840.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr90840.c b/gcc/testsuite/gcc.c-torture/compile/pr90840.c
new file mode 100644
index 0000000..94a6f3f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr90840.c
@@ -0,0 +1,19 @@
+/* PR middle-end/90840 */
+struct S { long long a; int b; };
+struct S foo (void);
+struct __attribute__((packed)) T { long long a; char b; };
+struct T baz (void);
+
+void
+bar (void)
+{
+ _Complex long double c;
+ *(struct S *) &c = foo ();
+}
+
+void
+qux (void)
+{
+ _Complex long double c;
+ *(struct T *) &c = baz ();
+}