[LLVMbugs] [Bug 18891] New: NR_PAGEFLAGS macro with inline assembly in ARM

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Feb 18 16:41:45 PST 2014


http://llvm.org/bugs/show_bug.cgi?id=18891

            Bug ID: 18891
           Summary: NR_PAGEFLAGS macro with inline assembly in ARM
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Backend: ARM
          Assignee: unassignedbugs at nondot.org
          Reporter: renato.golin at linaro.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

As described in Bug #18199:


First: asm volatile will emit crap as instructed, expanding the parameters as
necessary. 
Second: gcc will not perform assembly validation and accept GARBAGE!

The garbage portion of the second point is IMPORTANT.

By doing this, they can rely on the frontend translating constant expressions
into values that will be emitted as raw output.  This output is then saved off
and post-processed by a sed script to generate future input for the compiler.

As an example:

#define DEFINE(sym, val) asm volatile("\n->" #sym " %0 " #val : : "i" (val))

DEFINE(NR_PAGEFLAGS, __NR_PAGEFLAGS)

->NR_PAGEFLAGS #22 __NR_PAGEFLAGS

-- 
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/20140219/09b3525a/attachment.html>


More information about the llvm-bugs mailing list