diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-family/c-common.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr55570.c | 4 |
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" } */ |