[LLVMbugs] [Bug 14966] New: A debug info issue when passing a struct by value
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed Jan 16 09:59:57 PST 2013
http://llvm.org/bugs/show_bug.cgi?id=14966
Bug #: 14966
Summary: A debug info issue when passing a struct by value
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: -New Bugs
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: gribozavr at gmail.com
CC: dblaikie at gmail.com, echristo at gmail.com,
llvmbugs at cs.uiuc.edu
Classification: Unclassified
There's an issue with debug information when passing a particular struct by
value.
$ head -n 100 z.cc zz.cc
==> z.cc <==
enum A {A_1};
typedef struct { enum A a; int b; const void *c[3]; } S;
const void *f2(S s);
__attribute__((noinline)) const void *f1(S s) {
return f2(s);
}
int main() {
S s = { A_1, 1, {(const void*)10, (const void*)20, (const void*)30} };
f1(s);
}
==> zz.cc <==
enum A {A_1};
typedef struct { enum A a; int b; const void *c[3]; } S;
const void *f2(S s) {
return s.c[2];
}
$ gdb ./a.out
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /tmp/yyy/a.out...done.
(gdb) b main
Breakpoint 1 at 0x4005f4: file z.cc, line 11.
(gdb) r
Starting program: /tmp/yyy/a.out
Breakpoint 1, main () at z.cc:11
11 S s = { A_1, 1, {(const void*)10, (const void*)20, (const void*)30}
};
(gdb) n
12 f1(s);
(gdb) s
f1 (s=...) at z.cc:7
7 return f2(s);
(gdb) p s
$1 = {a = 4294959648, b = 32767, c = {0x7ffff7639320, 0x7ffff7deb310, 0x0}} //
<--- what?
(gdb) s
f2 (s=...) at zz.cc:4
4 const void *f2(S s) {
(gdb) n
5 return s.c[2];
(gdb) p s
$2 = {a = A_1, b = 1, c = {0xa, 0x14, 0x1e}}
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list