[PATCH] Fix DeclRefExpr::getFoundDecl() for non-call references.
Daniel Jasper
djasper at google.com
Wed Mar 20 14:37:57 PDT 2013
================
Comment at: lib/Sema/SemaExpr.cpp:2363-2364
@@ -2362,4 +2362,4 @@
if (!NeedsADL && R.isSingleResult() && !R.getAsSingle<FunctionTemplateDecl>())
- return BuildDeclarationNameExpr(SS, R.getLookupNameInfo(),
- R.getFoundDecl());
+ return BuildDeclarationNameExpr(SS, R.getLookupNameInfo(), R.getFoundDecl(),
+ R.getRepresentativeDecl());
----------------
Richard Smith wrote:
> These arguments appear to be reversed from the declaration of BuildDeclarationNameExpr. Is that intentional?
I hope I am getting this right. I think they just mean different things. The confusion is about FoundD(ecl).
In the context of a DeclRefExpr, it seems to mean the actually referenced Decl, i.e. the UsingShadowDecl if it references through it. In the context of a LookupResult, the getFoundDecl() returns the underlying decl and getRepresentativeDecl() returns what would be the DeclRefExpr::getFoundDecl().
http://llvm-reviews.chandlerc.com/D550
More information about the cfe-commits
mailing list