diff options
| author | Paul Eggert | 2014-04-23 11:23:28 -0700 |
|---|---|---|
| committer | Paul Eggert | 2014-04-23 11:23:28 -0700 |
| commit | 417c9bcba10006e773e24cbed1ddb9b16712ceb0 (patch) | |
| tree | f318ad687dc4c7ab3f47ec06ea6cbff765cb3134 /src | |
| parent | ddc13efd7096bf8cb745cd7b03b6f064747680bc (diff) | |
| download | emacs-417c9bcba10006e773e24cbed1ddb9b16712ceb0.tar.gz emacs-417c9bcba10006e773e24cbed1ddb9b16712ceb0.zip | |
* conf_post.h (ADDRESS_SANITIZER_WORKAROUND): Port to GCC 4.9.0
and to clang 3.4, which have fixed the bug. This should let us
run a bit faster on these platforms when address sanitization is
in effect.
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 |