aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaCUDA.cpp
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2014-12-16 20:04:55 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2014-12-16 20:04:55 +0000
commit545e7276a870c60d4d289b72b38e1529dae2acd7 (patch)
treecfeafd7b8751eac4d296b85e50cd1fad1f33ed1c /clang/lib/Sema/SemaCUDA.cpp
parenta4a94f1b552a725ffdbc86b73c8939ea521552f7 (diff)
downloadllvm-545e7276a870c60d4d289b72b38e1529dae2acd7.zip
llvm-545e7276a870c60d4d289b72b38e1529dae2acd7.tar.gz
llvm-545e7276a870c60d4d289b72b38e1529dae2acd7.tar.bz2
Use the object's package to mangle method names, rather than the receiver's package
If we use the receiver's package, we can end up with identical manglings for different functions. Consider: package p type U struct{} func (U) f() package q import "p" type T struct { p.U } func (T) f() The method set of *T has two synthetic methods named (*T).f(); one forwards to (T).f(), and the other to (U).f(). Previously, we were distinguishing them by the receiver's package, and in this case because both methods have the same receiver, they received the same name. The methods are correctly distinguished by the package owning the identifier "f", which is available via f.Object().Pkg(). Differential Revision: http://reviews.llvm.org/D6673 llvm-svn: 224357
Diffstat (limited to 'clang/lib/Sema/SemaCUDA.cpp')
0 files changed, 0 insertions, 0 deletions