]> granicus.if.org Git - clang/commitdiff
Fix bug on reporting availability of deleted methods in libclang.
authorManuel Klimek <klimek@google.com>
Fri, 25 Sep 2015 17:53:16 +0000 (17:53 +0000)
committerManuel Klimek <klimek@google.com>
Fri, 25 Sep 2015 17:53:16 +0000 (17:53 +0000)
Patch by Sergey Kalinichev.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@248596 91177308-0d34-0410-b5e6-96231b3b80d8

test/Index/availability.cpp [new file with mode: 0644]
tools/libclang/CIndex.cpp

diff --git a/test/Index/availability.cpp b/test/Index/availability.cpp
new file mode 100644 (file)
index 0000000..61f1534
--- /dev/null
@@ -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]
index 53fa684d1dddd42baf1e6edd18d71b54b43dc9e5..829cab736d793c3b1b9d85f0c97594183ac422f3 100644 (file)
@@ -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: