aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/builtins.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3bce65c..b317fc5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-07-13 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/53937
+ * builtins.c (get_pointer_alignment_1): Handle constant
+ pointers.
+
2012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
Steven Bosscher <steven@gcc.gnu.org>
Bernd Schmidt <bernds@codesourcery.com>
diff --git a/gcc/builtins.c b/gcc/builtins.c
index c12eb29..040f352 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -536,6 +536,13 @@ get_pointer_alignment_1 (tree exp, unsigned int *alignp,
return false;
}
}
+ else if (TREE_CODE (exp) == INTEGER_CST)
+ {
+ *alignp = BIGGEST_ALIGNMENT;
+ *bitposp = ((TREE_INT_CST_LOW (exp) * BITS_PER_UNIT)
+ & (BIGGEST_ALIGNMENT - 1));
+ return true;
+ }
*bitposp = 0;
*alignp = BITS_PER_UNIT;