mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-01-03 03:26:39 +00:00
1906cf93f8
You might just say: 'Yeah! crosstool-NG's got its own repo!". Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup. That means I'm putting backups in place in the afternoon. That also means we've lost history... :-(
62 lines
1.8 KiB
Diff
62 lines
1.8 KiB
Diff
Message-Id: 20030822160024.GA305@ftbfs.org
|
|
From: Matt Kraai kraai at alumni dot cmu dot edu
|
|
To: gcc-patches at gcc dot gnu dot org
|
|
Date: Fri, 22 Aug 2003 09:00:24 -0700
|
|
Subject: PR 11949
|
|
|
|
Howdy,
|
|
|
|
I've backported the following patch from the mainline to the 3.3
|
|
branch to fix PR 11949.
|
|
|
|
Bootstrapped and regression tested on powerpc-unknown-linux-gnu.
|
|
|
|
OK to commit?
|
|
|
|
PR c/11949
|
|
Backport from mainline:
|
|
|
|
2003-05-05 Aldy Hernandez aldyh@redhat.com
|
|
|
|
* testsuite/gcc.c-torture/compile/simd-6.c: New.
|
|
|
|
* c-typeck.c (digest_init): Handle arrays of vector constants.
|
|
|
|
Index: gcc/c-typeck.c
|
|
===================================================================
|
|
RCS file: /cvs/gcc/gcc/gcc/c-typeck.c,v
|
|
retrieving revision 1.213.2.8
|
|
diff -3 -c -p -r1.213.2.8 c-typeck.c
|
|
*** gcc/gcc/c-typeck.c 19 Aug 2003 01:42:35 -0000 1.213.2.8
|
|
--- gcc/gcc/c-typeck.c 22 Aug 2003 09:24:03 -0000
|
|
*************** digest_init (type, init, require_constan
|
|
*** 4765,4772 ****
|
|
if (code == VECTOR_TYPE
|
|
&& comptypes (TREE_TYPE (inside_init), type)
|
|
&& TREE_CONSTANT (inside_init))
|
|
! return build_vector (type, TREE_OPERAND (inside_init, 1));
|
|
!
|
|
|
|
/* Any type can be initialized
|
|
from an expression of the same type, optionally with braces. */
|
|
--- 4765,4778 ----
|
|
if (code == VECTOR_TYPE
|
|
&& comptypes (TREE_TYPE (inside_init), type)
|
|
&& TREE_CONSTANT (inside_init))
|
|
! {
|
|
! if (TREE_CODE (inside_init) == VECTOR_CST
|
|
! && comptypes (TYPE_MAIN_VARIANT (TREE_TYPE (inside_init)),
|
|
! TYPE_MAIN_VARIANT (type)))
|
|
! return inside_init;
|
|
! else
|
|
! return build_vector (type, CONSTRUCTOR_ELTS (inside_init));
|
|
! }
|
|
|
|
/* Any type can be initialized
|
|
from an expression of the same type, optionally with braces. */
|
|
|
|
typedef int __attribute__((mode(V2SI))) vec;
|
|
|
|
vec a[] = {(vec) {1, 2}, {3, 4}};
|
|
|