diff options
| author | Paul Eggert | 2014-11-29 23:30:22 -0800 |
|---|---|---|
| committer | Paul Eggert | 2014-11-29 23:32:29 -0800 |
| commit | 3517da701ea5d16c296745d6678988b06bee615d (patch) | |
| tree | aa890d2a3915c69ce9a6a41714bc8cad9c6c3b70 /src/ChangeLog | |
| parent | 70723e5107fd92c31e5b395d58be0b20b13c322d (diff) | |
| download | emacs-3517da701ea5d16c296745d6678988b06bee615d.tar.gz emacs-3517da701ea5d16c296745d6678988b06bee615d.zip | |
Port better to AddressSanitizer.
These changes suffice for temacs on x86-64 with GCC 4.9.2 and
-fsanitize=address.
* alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]:
Return -1 or 0, as the pipe trick doesn't work.
* alloc.c (relocatable_string_data_p, mark_object, sweep_symbols):
* data.c (Ffset):
* print.c (print_object):
When a pointer-check primitive returns -1, do not assume this
means the pointer is valid or that the underlying system has failed.
It could just be that addresses are being sanitized so Emacs can't
test for pointer validity.
* lisp.h (defined_GC_CHECK_STRING_BYTES): New constant.
(USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the
string validity checker doesn't work on stack-based strings.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 668c3e809f6..c977eb490f5 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,21 @@ | |||
| 1 | 2014-11-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | Port better to AddressSanitizer. | ||
| 4 | These changes suffice for temacs on x86-64 with GCC 4.9.2 and | ||
| 5 | -fsanitize=address. | ||
| 6 | * alloc.c (valid_pointer_p) [ADDRESS_SANITIZER]: | ||
| 7 | Return -1 or 0, as the pipe trick doesn't work. | ||
| 8 | * alloc.c (relocatable_string_data_p, mark_object, sweep_symbols): | ||
| 9 | * data.c (Ffset): | ||
| 10 | * print.c (print_object): | ||
| 11 | When a pointer-check primitive returns -1, do not assume this | ||
| 12 | means the pointer is valid or that the underlying system has failed. | ||
| 13 | It could just be that addresses are being sanitized so Emacs can't | ||
| 14 | test for pointer validity. | ||
| 15 | * lisp.h (defined_GC_CHECK_STRING_BYTES): New constant. | ||
| 16 | (USE_STACK_STRING) [GC_CHECK_STRING_BYTES]: Now false, since the | ||
| 17 | string validity checker doesn't work on stack-based strings. | ||
| 18 | |||
| 1 | 2014-11-29 Paul Eggert <eggert@cs.ucla.edu> | 19 | 2014-11-29 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 20 | ||
| 3 | Improve clarity of USE_LSB_TAG definition. | 21 | Improve clarity of USE_LSB_TAG definition. |