[llvm-bugs] [Bug 35441] New: AsmParser::parseMSInlineAsm() incorrectly assumes whitespace when rewriting expressions
    via llvm-bugs 
    llvm-bugs at lists.llvm.org
       
    Mon Nov 27 12:44:33 PST 2017
    
    
  
https://bugs.llvm.org/show_bug.cgi?id=35441
            Bug ID: 35441
           Summary: AsmParser::parseMSInlineAsm() incorrectly assumes
                    whitespace when rewriting expressions
           Product: new-bugs
           Version: trunk
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: vadim at penzin.net
                CC: llvm-bugs at lists.llvm.org
Created attachment 19480
  --> https://bugs.llvm.org/attachment.cgi?id=19480&action=edit
Patch against revision 319067
Microsoft C/C++ compiler allows the following syntax:
    __asm { mov[foo],2017 }
(Note the absence of whitespace between the opcode "mov" and the left bracket.)
AsmParser::parseMSInlineAsm() rewrites the above fragment as "movdword ptr
$0,$$2017" while the expected result is "mov dword ptr $0,$$2017" (note the
whitespace between the opcode "mov" and the size specifier "dword ptr").
To reproduce the above, please consider the following C source (foo.c):
#include <stdint.h>
int
foo ( void )
{
        int32_t bar = 0;
        __asm {
                mov[bar],2017
        }
        return bar;
}
Please verify generation of the bitcode of the above as follows:
clang-6.0 -S -fasm-blocks -emit-llvm foo.c -o - | grep dword
Please find attached a patch that amends this issue.
-- 
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/20171127/ae8e30ba/attachment.html>
    
    
More information about the llvm-bugs
mailing list