OSDN Git Service

2004-01-16 Andrew Pinski <pinskia@physics.uc.edu>
authorpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Jan 2004 18:59:46 +0000 (18:59 +0000)
committerpinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Jan 2004 18:59:46 +0000 (18:59 +0000)
        PR c++/11895
        * g++.dg/ext/vector1.C: New test.

2003-08-26  Fred Fish  <fnf@intrinsity.com>

        PR c++/11895
        * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
        except don't call array_type_nelts() with a VECTOR_TYPE.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@76038 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/vector1.C [new file with mode: 0644]

index fb2b43d..eb8d8ee 100644 (file)
@@ -1,3 +1,9 @@
+2003-08-26  Fred Fish  <fnf@intrinsity.com>
+
+       PR c++/11895
+       * decl.c (reshape_init): Handle VECTOR_TYPE like ARRAY_TYPE,
+       except don't call array_type_nelts() with a VECTOR_TYPE.
+
 2004-01-16  Jan Hubicka  <jh@suse.cz>
 
        * mangle.c (write_mangled_name): Remove inline modifier.
index b95cf1e..db93277 100644 (file)
@@ -4330,14 +4330,14 @@ reshape_init (tree type, tree *initp)
                }
            }
        }
-      else if (TREE_CODE (type) == ARRAY_TYPE)
+      else if ((TREE_CODE (type) == ARRAY_TYPE)|| (TREE_CODE (type) == VECTOR_TYPE))
        {
          tree index;
          tree max_index;
 
          /* If the bound of the array is known, take no more initializers
             than are allowed.  */
-         max_index = (TYPE_DOMAIN (type) 
+         max_index = ((TYPE_DOMAIN (type) && (TREE_CODE (type) == ARRAY_TYPE))
                       ? array_type_nelts (type) : NULL_TREE);
          /* Loop through the array elements, gathering initializers.  */
          for (index = size_zero_node;
index bb7015e..cae7d11 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
+
+       PR c++/11895
+       * g++.dg/ext/vector1.C: New test.
+
 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
 
        * gcc.dg/pch/import-1.c: New.
diff --git a/gcc/testsuite/g++.dg/ext/vector1.C b/gcc/testsuite/g++.dg/ext/vector1.C
new file mode 100644 (file)
index 0000000..c6f0e04
--- /dev/null
@@ -0,0 +1,5 @@
+//  PR c++/11895
+//  This used to ICE in reshape_init.
+//  testcase from fnf@ninemoons.com
+
+    __attribute__((vector_size(16))) int a1 = { 100, 200, 300, 400 };