From 5a6732530abc88d273922ebc41f0e5730d51a24d Mon Sep 17 00:00:00 2001 From: Manuel Klimek Date: Fri, 25 Sep 2015 17:53:16 +0000 Subject: [PATCH] Fix bug on reporting availability of deleted methods in libclang. 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 | 13 +++++++++++++ tools/libclang/CIndex.cpp | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/Index/availability.cpp diff --git a/test/Index/availability.cpp b/test/Index/availability.cpp new file mode 100644 index 0000000000..61f1534b3c --- /dev/null +++ b/test/Index/availability.cpp @@ -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] diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp index 53fa684d1d..829cab736d 100644 --- a/tools/libclang/CIndex.cpp +++ b/tools/libclang/CIndex.cpp @@ -6412,7 +6412,7 @@ extern "C" { static CXAvailabilityKind getCursorAvailabilityForDecl(const Decl *D) { if (isa(D) && cast(D)->isDeleted()) - return CXAvailability_Available; + return CXAvailability_NotAvailable; switch (D->getAvailability()) { case AR_Available: -- 2.50.1