[llvm-bugs] [Bug 34886] New: SUBALIGN should not support expressions involving '.'

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Oct 9 08:18:19 PDT 2017


            Bug ID: 34886
           Summary: SUBALIGN should not support expressions involving '.'
           Product: lld
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: ELF
          Assignee: unassignedbugs at nondot.org
          Reporter: jh7370.2008 at my.bristol.ac.uk
                CC: llvm-bugs at lists.llvm.org

LLD currently allows any arbitrary expression in the SUBALIGN linker script
directive. However, such expressions can end up being relative to '.'. The
code, however, does not update '.' at all before the SUBALIGN expression is
evaluated. This results in SUBALIGN taking a value of zero, currently, and thus
an assertion failure when attempting to process the alignment. The following
example linker script will illustrate this failure.

    . = 32;
    .text : SUBALIGN(.) { *(.text*) }

Note that if https://reviews.llvm.org/D38360 should land in its current state,
then different errors will occur in this case, rather than the divide by zero

For reference, ld.bfd refuses to accept non-constant expressions in this case,
while gold accepts them, but produces an internal error.

You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171009/9a9d0b64/attachment.html>

More information about the llvm-bugs mailing list