diff options
| author | Richard Brooksby | 2012-09-07 23:48:14 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2012-09-07 23:48:14 +0100 |
| commit | 5a604a2f5197e7c769638fadb98aa41d88faef7f (patch) | |
| tree | 8ba711da58dfd437f2cac5499dc01c31c07b8197 /mps/code/mpmtypes.h | |
| parent | 6c887280e43265b347cdd9056c86271ad81e8c2a (diff) | |
| download | emacs-5a604a2f5197e7c769638fadb98aa41d88faef7f.tar.gz emacs-5a604a2f5197e7c769638fadb98aa41d88faef7f.zip | |
Fixing bugs introduced by type puns passed through scanning methods, discovered by offsetting mps_ss_s from the beginning of scanstatestruct.
Adding a pseudo-target "find-puns" which, on FreeBSD mostly, prints useful warnings about strict aliasing rule violations.
Fixing more strict aliasing rule violations found by the above.
Copied from Perforce
Change: 179358
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code/mpmtypes.h')
| -rw-r--r-- | mps/code/mpmtypes.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/mps/code/mpmtypes.h b/mps/code/mpmtypes.h index a15098c53ee..b1853178cbb 100644 --- a/mps/code/mpmtypes.h +++ b/mps/code/mpmtypes.h | |||
| @@ -246,7 +246,7 @@ typedef struct TraceMessageStruct *TraceMessage; /* trace end */ | |||
| 246 | /* .fmt-methods: These methods must match those defined in the */ | 246 | /* .fmt-methods: These methods must match those defined in the */ |
| 247 | /* MPS C Interface. (See <code/mps.h#fmt-methods>.) */ | 247 | /* MPS C Interface. (See <code/mps.h#fmt-methods>.) */ |
| 248 | 248 | ||
| 249 | typedef Res (*FormatScanMethod)(ScanState ss, Addr base, Addr limit); | 249 | typedef Res (*FormatScanMethod)(mps_ss_t ss, Addr base, Addr limit); |
| 250 | typedef Addr (*FormatSkipMethod)(Addr object); | 250 | typedef Addr (*FormatSkipMethod)(Addr object); |
| 251 | typedef void (*FormatMoveMethod)(Addr object, Addr to); | 251 | typedef void (*FormatMoveMethod)(Addr object, Addr to); |
| 252 | typedef Addr (*FormatIsMovedMethod)(Addr object); | 252 | typedef Addr (*FormatIsMovedMethod)(Addr object); |
| @@ -259,8 +259,8 @@ typedef Addr (*FormatClassMethod)(Addr object); | |||
| 259 | /* .root-methods: These methods must match those defined in the */ | 259 | /* .root-methods: These methods must match those defined in the */ |
| 260 | /* MPS C Interface. (See <code/mps.h#root-methods>.) */ | 260 | /* MPS C Interface. (See <code/mps.h#root-methods>.) */ |
| 261 | 261 | ||
| 262 | typedef Res (*RootScanMethod)(ScanState ss, void *p, size_t s); | 262 | typedef Res (*RootScanMethod)(mps_ss_t ss, void *p, size_t s); |
| 263 | typedef Res (*RootScanRegMethod)(ScanState ss, Thread thread, void *p, size_t s); | 263 | typedef Res (*RootScanRegMethod)(mps_ss_t ss, Thread thread, void *p, size_t s); |
| 264 | 264 | ||
| 265 | 265 | ||
| 266 | /* CONSTANTS */ | 266 | /* CONSTANTS */ |