aboutsummaryrefslogtreecommitdiffstats
path: root/src/pdumper.c
diff options
context:
space:
mode:
authorAndreas Schwab2019-07-09 21:12:14 +0200
committerAndreas Schwab2019-07-09 21:41:24 +0200
commitfc41b0610e5bb204dd9905f89e235ea801e7a4ea (patch)
tree5905a009530bda821688434a936bbf3fa96bad15 /src/pdumper.c
parentbff64115a0ad081282e0f99305f41c8dd1917d67 (diff)
downloademacs-fc41b0610e5bb204dd9905f89e235ea801e7a4ea.tar.gz
emacs-fc41b0610e5bb204dd9905f89e235ea801e7a4ea.zip
Make fingerprint handling compatible with LTO
Tell the compiler that the fingerprint variable is modified unpredictably. * lib/fingerprint.h (fingerprint): Remove const. * lib/fingerprint.c (fingerprint): Likewise. * src/pdumper.c (Fdump_emacs_portable): Cast fingerprint variable. (pdumper_load): Likewise. * lib-src/make-fingerprint.c (main): Likewise.
Diffstat (limited to 'src/pdumper.c')
-rw-r--r--src/pdumper.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pdumper.c b/src/pdumper.c
index 8b630d221b1..7d29d3c0c83 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -4101,7 +4101,8 @@ types. */)
4101 ctx->header.magic[0] = '!'; /* Note that dump is incomplete. */ 4101 ctx->header.magic[0] = '!'; /* Note that dump is incomplete. */
4102 4102
4103 verify (sizeof (fingerprint) == sizeof (ctx->header.fingerprint)); 4103 verify (sizeof (fingerprint) == sizeof (ctx->header.fingerprint));
4104 memcpy (ctx->header.fingerprint, fingerprint, sizeof (fingerprint)); 4104 memcpy (ctx->header.fingerprint, (unsigned char *) fingerprint,
4105 sizeof (fingerprint));
4105 4106
4106 const dump_off header_start = ctx->offset; 4107 const dump_off header_start = ctx->offset;
4107 dump_fingerprint ("dumping fingerprint", ctx->header.fingerprint); 4108 dump_fingerprint ("dumping fingerprint", ctx->header.fingerprint);
@@ -5359,9 +5360,10 @@ pdumper_load (const char *dump_filename)
5359 5360
5360 err = PDUMPER_LOAD_VERSION_MISMATCH; 5361 err = PDUMPER_LOAD_VERSION_MISMATCH;
5361 verify (sizeof (header->fingerprint) == sizeof (fingerprint)); 5362 verify (sizeof (header->fingerprint) == sizeof (fingerprint));
5362 if (memcmp (header->fingerprint, fingerprint, sizeof (fingerprint)) != 0) 5363 if (memcmp (header->fingerprint, (unsigned char *) fingerprint,
5364 sizeof (fingerprint)) != 0)
5363 { 5365 {
5364 dump_fingerprint ("desired fingerprint", fingerprint); 5366 dump_fingerprint ("desired fingerprint", (unsigned char *) fingerprint);
5365 dump_fingerprint ("found fingerprint", header->fingerprint); 5367 dump_fingerprint ("found fingerprint", header->fingerprint);
5366 goto out; 5368 goto out;
5367 } 5369 }