diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/conf_post.h | 14 |
2 files changed, 14 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index fdbf922173b..1a4c29f2580 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2014-04-23 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0 | ||
| 4 | and to clang 3.4, which have fixed the bug. This should let us | ||
| 5 | run a bit faster on these platforms when address sanitization is | ||
| 6 | in effect. | ||
| 7 | |||
| 1 | 2014-04-22 Paul Eggert <eggert@cs.ucla.edu> | 8 | 2014-04-22 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 9 | ||
| 3 | Port to GCC 4.9.0 with --enable-gcc-warnings. | 10 | Port to GCC 4.9.0 with --enable-gcc-warnings. |
diff --git a/src/conf_post.h b/src/conf_post.h index 2e78c2f5e25..95b028a66ee 100644 --- a/src/conf_post.h +++ b/src/conf_post.h | |||
| @@ -226,14 +226,14 @@ extern void _DebPrint (const char *fmt, ...); | |||
| 226 | 226 | ||
| 227 | /* Work around GCC bug 59600: when a function is inlined, the inlined | 227 | /* Work around GCC bug 59600: when a function is inlined, the inlined |
| 228 | code may have its addresses sanitized even if the function has the | 228 | code may have its addresses sanitized even if the function has the |
| 229 | no_sanitize_address attribute. This bug is present in GCC 4.8.2 | 229 | no_sanitize_address attribute. This bug is fixed in GCC 4.9.0 and |
| 230 | and clang 3.3, the latest releases as of December 2013, and the | 230 | clang 3.4. */ |
| 231 | only platforms known to support address sanitization. When the bug | 231 | #if (! ADDRESS_SANITIZER \ |
| 232 | is fixed the #if can be updated accordingly. */ | 232 | || ((4 < __GNUC__ + (9 <= __GNUC_MINOR__)) \ |
| 233 | #if ADDRESS_SANITIZER | 233 | || 3 < __clang_major__ + (4 <= __clang_minor__))) |
| 234 | # define ADDRESS_SANITIZER_WORKAROUND NO_INLINE | 234 | # define ADDRESS_SANITIZER_WORKAROUND /* No workaround needed. */ |
| 235 | #else | 235 | #else |
| 236 | # define ADDRESS_SANITIZER_WORKAROUND | 236 | # define ADDRESS_SANITIZER_WORKAROUND NO_INLINE |
| 237 | #endif | 237 | #endif |
| 238 | 238 | ||
| 239 | /* Attribute of functions whose code should not have addresses | 239 | /* Attribute of functions whose code should not have addresses |