aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code/mpmtypes.h
diff options
context:
space:
mode:
authorRichard Brooksby2012-09-07 23:48:14 +0100
committerRichard Brooksby2012-09-07 23:48:14 +0100
commit5a604a2f5197e7c769638fadb98aa41d88faef7f (patch)
tree8ba711da58dfd437f2cac5499dc01c31c07b8197 /mps/code/mpmtypes.h
parent6c887280e43265b347cdd9056c86271ad81e8c2a (diff)
downloademacs-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.h6
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
249typedef Res (*FormatScanMethod)(ScanState ss, Addr base, Addr limit); 249typedef Res (*FormatScanMethod)(mps_ss_t ss, Addr base, Addr limit);
250typedef Addr (*FormatSkipMethod)(Addr object); 250typedef Addr (*FormatSkipMethod)(Addr object);
251typedef void (*FormatMoveMethod)(Addr object, Addr to); 251typedef void (*FormatMoveMethod)(Addr object, Addr to);
252typedef Addr (*FormatIsMovedMethod)(Addr object); 252typedef 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
262typedef Res (*RootScanMethod)(ScanState ss, void *p, size_t s); 262typedef Res (*RootScanMethod)(mps_ss_t ss, void *p, size_t s);
263typedef Res (*RootScanRegMethod)(ScanState ss, Thread thread, void *p, size_t s); 263typedef Res (*RootScanRegMethod)(mps_ss_t ss, Thread thread, void *p, size_t s);
264 264
265 265
266/* CONSTANTS */ 266/* CONSTANTS */