diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-11-10 16:40:34 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2011-11-10 16:40:34 +0100 |
commit | c8bf99b4e84b9b0783aca23ecc85425cb3569f16 (patch) | |
tree | ab09cad2f5bd98719ee66798ec564bd0f5745126 /gcc | |
parent | 03989f55955ddb1f82ce79a7c2251039d0ba5d0e (diff) | |
download | gcc-c8bf99b4e84b9b0783aca23ecc85425cb3569f16.zip gcc-c8bf99b4e84b9b0783aca23ecc85425cb3569f16.tar.gz gcc-c8bf99b4e84b9b0783aca23ecc85425cb3569f16.tar.bz2 |
vec.h (VEC_BASE): If base is at offset 0 in the structure, use &(P)->base even if P is NULL.
* vec.h (VEC_BASE): If base is at offset 0 in the structure,
use &(P)->base even if P is NULL.
From-SVN: r181258
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/vec.h | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index faea63a..86515365 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,8 @@ 2011-11-10 Jakub Jelinek <jakub@redhat.com> + * vec.h (VEC_BASE): If base is at offset 0 in the structure, + use &(P)->base even if P is NULL. + PR rtl-optimization/51023 * combine.c (simplify_comparison) <case SIGN_EXTEND>: Don't use val_signbit_known_clear_p for signed comparison narrowing @@ -549,7 +549,12 @@ typedef struct VEC(T,A) \ } VEC(T,A) /* Convert to base type. */ +#if GCC_VERSION >= 4000 +#define VEC_BASE(P) \ + ((offsetof (__typeof (*P), base) == 0 || (P)) ? &(P)->base : 0) +#else #define VEC_BASE(P) ((P) ? &(P)->base : 0) +#endif /* Vector of integer-like object. */ #define DEF_VEC_I(T) \ |