r248596 - Fix bug on reporting availability of deleted methods in libclang.

Manuel Klimek via cfe-commits cfe-commits at lists.llvm.org
Fri Sep 25 10:53:16 PDT 2015


Author: klimek
Date: Fri Sep 25 12:53:16 2015
New Revision: 248596

URL: http://llvm.org/viewvc/llvm-project?rev=248596&view=rev
Log:
Fix bug on reporting availability of deleted methods in libclang.

Patch by Sergey Kalinichev.

Added:
    cfe/trunk/test/Index/availability.cpp
Modified:
    cfe/trunk/tools/libclang/CIndex.cpp

Added: cfe/trunk/test/Index/availability.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/availability.cpp?rev=248596&view=auto
==============================================================================
--- cfe/trunk/test/Index/availability.cpp (added)
+++ cfe/trunk/test/Index/availability.cpp Fri Sep 25 12:53:16 2015
@@ -0,0 +1,13 @@
+void foo() = delete;
+
+struct Foo {
+  int foo() = delete;
+  Foo() = delete;
+};
+
+
+// RUN: c-index-test -test-print-type --std=c++11 %s | FileCheck %s
+// CHECK: FunctionDecl=foo:1:6 (unavailable) [type=void ()] [typekind=FunctionProto] [resulttype=void] [resulttypekind=Void] [isPOD=0]
+// CHECK: StructDecl=Foo:3:8 (Definition) [type=Foo] [typekind=Record] [isPOD=1]
+// CHECK: CXXMethod=foo:4:7 (unavailable) [type=int ()] [typekind=FunctionProto] [resulttype=int] [resulttypekind=Int] [isPOD=0]
+// CHECK: CXXConstructor=Foo:5:3 (unavailable) [type=void ()] [typekind=FunctionProto] [resulttype=void] [resulttypekind=Void] [isPOD=0]

Modified: cfe/trunk/tools/libclang/CIndex.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=248596&r1=248595&r2=248596&view=diff
==============================================================================
--- cfe/trunk/tools/libclang/CIndex.cpp (original)
+++ cfe/trunk/tools/libclang/CIndex.cpp Fri Sep 25 12:53:16 2015
@@ -6412,7 +6412,7 @@ extern "C" {
 
 static CXAvailabilityKind getCursorAvailabilityForDecl(const Decl *D) {
   if (isa<FunctionDecl>(D) && cast<FunctionDecl>(D)->isDeleted())
-    return CXAvailability_Available;
+    return CXAvailability_NotAvailable;
   
   switch (D->getAvailability()) {
   case AR_Available:




More information about the cfe-commits mailing list