From 950474d6971a94f444b64b83f6b9ac05da1449c4 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 7 Sep 2006 15:36:50 +0000
Subject: [PATCH] 2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * stor-layout.c (relayout_decl): Don't zero the alignment if it
        was set by the user.

2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>

        PR middle-end/28862
        * gcc.c-torture/compile/vector-align-1.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116751 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog                                        |  6 ++++++
 gcc/stor-layout.c                                    |  3 ++-
 gcc/testsuite/ChangeLog                              |  5 +++++
 gcc/testsuite/gcc.c-torture/compile/vector-align-1.c | 11 +++++++++++
 4 files changed, 24 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.c-torture/compile/vector-align-1.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f3d086b5ea64..b3e4028f6e5b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR middle-end/28862
+	* stor-layout.c (relayout_decl): Don't zero the alignment if it
+	was set by the user.
+
 2006-09-07  Paolo Bonzini  <bonzini@gnu.org>
 
 	PR target/27117
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 415f7c1168e2..d1e18a243d04 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -489,7 +489,8 @@ relayout_decl (tree decl)
 {
   DECL_SIZE (decl) = DECL_SIZE_UNIT (decl) = 0;
   DECL_MODE (decl) = VOIDmode;
-  DECL_ALIGN (decl) = 0;
+  if (!DECL_USER_ALIGN (decl))
+    DECL_ALIGN (decl) = 0;
   SET_DECL_RTL (decl, 0);
 
   layout_decl (decl, 0);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 0e052be2e7df..d8a56319e8b9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-09-07  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR middle-end/28862
+	* gcc.c-torture/compile/vector-align-1.c: New test.
+
 2006-09-06  Andrew Pinski  <pinskia@physics.uc.edu>
 
 	PR rtl-opt/27883
diff --git a/gcc/testsuite/gcc.c-torture/compile/vector-align-1.c b/gcc/testsuite/gcc.c-torture/compile/vector-align-1.c
new file mode 100644
index 000000000000..dc97ba6ca241
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/vector-align-1.c
@@ -0,0 +1,11 @@
+/* Check to make sure the alignment on vectors is not being lost. */
+
+/* If some target has a Max alignment less than 128, please create
+   a #ifdef around the alignment and add your alignment.  */
+#define alignment 128
+
+char x __attribute__((aligned(alignment),vector_size(2)));
+
+
+int f[__alignof__(x) == alignment?1:-1];
+
-- 
GitLab