From 601416627d7e4d21399144e43ca539707badbf61 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 14 Oct 2014 23:25:12 -0400 Subject: liblink: require DATA lines to be ordered by offset, with no overlap The assembler could give a better error, but this one is good enough for now. Fixes issue 8880. LGTM=r R=r CC=golang-codereviews https://codereview.appspot.com/153610043 --- src/liblink/data.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/liblink') diff --git a/src/liblink/data.c b/src/liblink/data.c index 4504f4171..e5efa2eb2 100644 --- a/src/liblink/data.c +++ b/src/liblink/data.c @@ -83,6 +83,8 @@ savedata(Link *ctxt, LSym *s, Prog *p, char *pn) siz = ctxt->arch->datasize(p); if(off < 0 || siz < 0 || off >= 1<<30 || siz >= 100) mangle(pn); + if(ctxt->enforce_data_order && off < s->np) + ctxt->diag("data out of order (already have %d)\n%P", p); symgrow(ctxt, s, off+siz); if(p->to.type == ctxt->arch->D_FCONST) { -- cgit v1.2.1