[llvm-bugs] [Bug 45435] New: Compilation error when using -save-temps -masm=intel

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Apr 5 05:54:17 PDT 2020


https://bugs.llvm.org/show_bug.cgi?id=45435

            Bug ID: 45435
           Summary: Compilation error when using -save-temps -masm=intel
           Product: clang
           Version: 10.0
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: Frontend
          Assignee: unassignedclangbugs at nondot.org
          Reporter: peterwarrenfrost at gmail.com
                CC: llvm-bugs at lists.llvm.org, neeilans at live.com,
                    richard-llvm at metafoo.co.uk

Created attachment 23311
  --> https://bugs.llvm.org/attachment.cgi?id=23311&action=edit
A zip file containing the original C code, cut-down preprocessed version, and
generated assembly.

Hi,

When compiling C with the clang frontend using -save-temps -masm=intel it seems
to think the following x86 assembly it generates is invalid when it comes to
assembling it.


$ clang -save-temps -masm=intel -c -o hello_world.o hello_world.i

hello_world.s:18:16: error: invalid base+index expression
        mov     qword ptr [ST], rax


$ clang -save-temps -masm=att -c -o hello_world.o hello_world.i

** no errors, compiles fine**

$ clang -masm=intel -c -o hello_world.o hello_world.i

** no errors, compiles fine**


ST is a file-level declared pointer to a typedef struct, although if I change
ST to be declared within the scope of the function I do not get a compilation
error because clang just puts it in the stack instead of trying to reference a
symbol called ST.

The hello_world.i file is the preprocessed version of the original file
(hello_world.c), that I've trimmed down to be as small as possible to
demonstrate the bug.

I've tried this with clang 9.0 and 10.0 and both seem to show the same error.
If you want more context on this code I found this while working on this
project
https://github.com/badcf00d/bare-bones-uefi/tree/clang-save-temps-intel-bug.

-- 
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/20200405/6079496d/attachment.html>


More information about the llvm-bugs mailing list