aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2012-12-03 13:02:04 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2012-12-03 13:02:04 +0000
commita859517f1e32d071b196fc603c2b62758dbce153 (patch)
tree0e2d1a4dcea34a4fee3b41eb75235f3399976947 /gcc
parentea3c6c07bdacc08be4885883db06d91f830b6552 (diff)
downloadgcc-a859517f1e32d071b196fc603c2b62758dbce153.zip
gcc-a859517f1e32d071b196fc603c2b62758dbce153.tar.gz
gcc-a859517f1e32d071b196fc603c2b62758dbce153.tar.bz2
Fix PR c/55570.
From-SVN: r194083
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-common.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr55570.c4
4 files changed, 17 insertions, 2 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index fb39e9d..a743517 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-03 Marek Polacek <polacek@redhat.com>
+
+ PR c/55570
+ * c-common.c (check_user_alignment): Swap order of tests,
+ check TREE_CODE first.
+
2012-11-29 Ed Smith-Rowland <3dw4rd@verizon.net>
PR c++/52654
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 5927edf..872a6a0 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -7261,8 +7261,8 @@ check_user_alignment (const_tree align, bool allow_zero)
{
int i;
- if (!INTEGRAL_TYPE_P (TREE_TYPE (align))
- || TREE_CODE (align) != INTEGER_CST)
+ if (TREE_CODE (align) != INTEGER_CST
+ || !INTEGRAL_TYPE_P (TREE_TYPE (align)))
{
error ("requested alignment is not an integer constant");
return -1;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 56b1c91..f4b2512 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-12-03 Marek Polacek <polacek@redhat.com>
+
+ PR c/55570
+ * gcc.dg/pr55570.c: New test.
+
2012-12-03 Jakub Jelinek <jakub@redhat.com>
* lib/asan-dg.exp (asan_get_gtest_test_list,
diff --git a/gcc/testsuite/gcc.dg/pr55570.c b/gcc/testsuite/gcc.dg/pr55570.c
new file mode 100644
index 0000000..903bb03
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr55570.c
@@ -0,0 +1,4 @@
+/* PR c/55570 */
+/* { dg-do compile } */
+
+char array[16] __attribute__((aligned (SOME_NOT_DEFINED_MACRO))); /* { dg-error "requested alignment is not an integer constant" } */