[llvm-bugs] [Bug 30766] New: Crash when using registers with a size mismatch

via llvm-bugs llvm-bugs at lists.llvm.org
Sat Oct 22 07:20:43 PDT 2016


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

            Bug ID: 30766
           Summary: Crash when using registers with a size mismatch
           Product: clang
           Version: 3.9
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: llvm at sjor.sg
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Observe the following (incorrect) code:

void foo() {
    register long long f asm("edx") = 0;
    asm("" :: "r"(f));
}

When compiled with a 32-bits triplet, this crashes Clang 3.9.0 on my machine:

$ "clang-3.9" "-cc1" "-triple" "i686-unknown-linux" "-emit-obj" "foo.c"
Stack dump:
0.    Program arguments: clang-3.9 -cc1 -triple i686-unknown-linux -emit-obj
foo.c 
1.    <eof> parser at end of file
2.    Code generation
3.    Running pass 'Function Pass Manager' on module 'foo.c'.
4.    Running pass 'X86 DAG->DAG Instruction Selection' on function '@foo'
[1]    5401 segmentation fault  "clang-3.9" "-cc1"

-- 
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/20161022/f7cdfab3/attachment.html>


More information about the llvm-bugs mailing list