FW: SemaAccess bug (protected members of derived)
Dixon Ryan (ETAS/ERS-PD2) via cfe-commits
cfe-commits at lists.llvm.org
Tue Mar 21 07:18:42 PDT 2017
Sending to mailing list.
From: Dixon Ryan (ETAS/ERS-PD2)
Sent: 21 March 2017 14:18
To: 'Alex L' <arphaman at gmail.com>
Subject: RE: SemaAccess bug (protected members of derived)
Hello, sorry this is the first time I have done this.
The test case is attached. It should fail without the patch and then should pass with the patch.
class cl
{
public:
void myPublic(int x){ }
protected:
void myProtected(int y){ }
};
class clChild : public cl
{
void myPrivate(int z)
{
this->
// RUN: %clang_cc1 -fsyntax-only -code-completion-at=%s:13:13 %s -o - | FileCheck -check-prefix=CHECK-CC1 %s
// CHECK: COMPLETION: myProtected : [#void#][#cl::#]myProtected(<#int y#>)
}
};
From: Alex L [mailto:arphaman at gmail.com]
Sent: 21 March 2017 12:17
To: Dixon Ryan (ETAS/ERS-PD2) <Ryan.Dixon at etas.com<mailto:Ryan.Dixon at etas.com>>
Cc: cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>
Subject: Re: SemaAccess bug (protected members of derived)
Hi,
Can you please add a suitable test-case? Clang's code-completion tests are normally in test/CodeCompletion or test/Index.
Cheers,
Alex
On 21 March 2017 at 12:05, Dixon Ryan (ETAS/ERS-PD2) via cfe-commits <cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>> wrote:
There are a number of users of the clang static analyser back-end for intelligent code completion. Irony-Mode for emacs, for example. For a while people have been reporting an issue with not getting completions for protected members of parent classes and I believe this patch solves the bug: simply that the arguments to IsDerivedFromInclusive were the wrong way around.
URL: http://llvm.org/svn/llvm-project/cfe/trunk/lib/Sema
Relative URL: ^/cfe/trunk/lib/Sema
Index: SemaAccess.cpp
===================================================================
--- SemaAccess.cpp (revision 297956)
+++ SemaAccess.cpp (working copy)
@@ -823,7 +823,7 @@
continue;
}
- switch (IsDerivedFromInclusive(InstanceContext, ECRecord)) {
+ switch (IsDerivedFromInclusive(ECRecord, InstanceContext)) {
case AR_accessible: return AR_accessible;
case AR_inaccessible: continue;
case AR_dependent: OnFailure = AR_dependent; continue;
Thank you.
_______________________________________________
cfe-commits mailing list
cfe-commits at lists.llvm.org<mailto:cfe-commits at lists.llvm.org>
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170321/6af488d5/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: protectedInDerived.cpp
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20170321/6af488d5/attachment-0001.ksh>
More information about the cfe-commits
mailing list