diff options
author | Quentin Carbonneaux <quentin@c9x.me> | 2022-09-09 17:54:06 +0200 |
---|---|---|
committer | Quentin Carbonneaux <quentin@c9x.me> | 2022-10-08 21:48:47 +0200 |
commit | 2e38c86af6c91bfb23dfb06b517a00c11fd4c1b3 (patch) | |
tree | e92c3e9ca07bcf794db0d44fd3159b132857314b | |
parent | 00a30954aca97004cb6f586bdeeabb488f1e3c3f (diff) | |
download | roux-2e38c86af6c91bfb23dfb06b517a00c11fd4c1b3.tar.gz |
do not drop relocation kind in alias analysis
-rw-r--r-- | alias.c | 1 | ||||
-rw-r--r-- | all.h | 1 | ||||
-rw-r--r-- | load.c | 2 |
3 files changed, 3 insertions, 1 deletions
diff --git a/alias.c b/alias.c index aa3846e..f4d7f91 100644 --- a/alias.c +++ b/alias.c @@ -19,6 +19,7 @@ getalias(Alias *a, Ref r, Fn *fn) if (c->type == CAddr) { a->type = ASym; a->label = c->label; + a->rel = c->rel; } else a->type = ACon; a->offset = c->bits.i; diff --git a/all.h b/all.h index 14ebf68..8303c62 100644 --- a/all.h +++ b/all.h @@ -282,6 +282,7 @@ struct Alias { Ref base; uint32_t label; int64_t offset; + int rel; Alias *slot; }; diff --git a/load.c b/load.c index cca8400..7146ce8 100644 --- a/load.c +++ b/load.c @@ -155,7 +155,7 @@ load(Slice sl, bits msk, Loc *l) c.type = CAddr; c.label = a->label; c.bits.i = a->offset; - c.rel = RelDef; + c.rel = a->rel; r = newcon(&c, curf); break; } |