[LLVMbugs] [Bug 19001] New: Attribute 'nodebug' disables line information when inlined

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Feb 28 00:03:36 PST 2014


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

            Bug ID: 19001
           Summary: Attribute 'nodebug' disables line information when
                    inlined
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: LLVM Codegen
          Assignee: unassignedclangbugs at nondot.org
          Reporter: eugeni.stepanov at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

$ cat nodebug.cc
__attribute__((__always_inline__, __nodebug__))
static int f(int x) {
        return __builtin_bswap32(x);
}

int main() {
        return f(0);
}

$ ./bin/clang++ nodebug.cc -O0 -g -S -emit-llvm -o -
...
define i32 @main() #0 {
entry:
  %x.addr.i = alloca i32, align 4
  %retval = alloca i32, align 4
  store i32 0, i32* %retval
  store i32 0, i32* %x.addr.i, align 4
  %0 = load i32* %x.addr.i, align 4
  %1 = call i32 @llvm.bswap.i32(i32 %0) #2
  ret i32 %1, !dbg !12
}
...

Instructions that are inlined from f are missing debug annotations.
I expect them to have line/column information from the call site (i.e. main()
function).
The way it is done now, binary code emitted for these instructions is assigned
line numbers from the preceding instructions, which is unstable in respect to
code moving optimizations.

-- 
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/20140228/3caa1fbe/attachment.html>


More information about the llvm-bugs mailing list