[LLVMbugs] [Bug 16835] New: [-cxx-abi microsoft] Mangle TemplateArgument::Declaration correctly for member pointers and references
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Aug 8 02:38:18 PDT 2013
http://llvm.org/bugs/show_bug.cgi?id=16835
Bug ID: 16835
Summary: [-cxx-abi microsoft] Mangle
TemplateArgument::Declaration correctly for member
pointers and references
Product: clang
Version: unspecified
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: LLVM Codegen
Assignee: unassignedclangbugs at nondot.org
Reporter: david.majnemer at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Member pointers currently show up as FieldDecls which, as far as we know,
aren't mangled.
Instead, the proper way to mangle these when they show up as template arguments
is to turn them into their field offset in byte units and encode that as a
literal.
Incidentally, we also failed to properly mangle declarations that are template
parameters. We would mangle them the same as non-type, non-reference
declarations. Fun-fact: undname cannot handle these!
struct record {
int first;
int second;
};
template <const record &>
struct type1 {
};
extern const record inst;
type1<inst> x;
template <int record::*>
struct type2 {
};
type2<&record::first> memptr1;
type2<&record::second> memptr2;
Should be mangled as:
?memptr1@@3U?$type2@$0A@@@A
?memptr2@@3U?$type2@$03@@A
?x@@3U?$type1@$E?inst@@3Urecord@@B@@A
--
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/20130808/d5d0dd34/attachment.html>
More information about the llvm-bugs
mailing list