Of course, apologies for this. Reverted in r271291 and recommitted in r271292.
On Tue, May 31, 2016 at 10:18 AM, David Blaikie <dblai...@gmail.com> wrote: > Burt Wesarg points out on cfe-dev that this commit message doesn't match > the patch (nor the description provided in the code review thread that lead > to this commit) - this one might be worth reverting and recommitting with a > more accurate commit message (I don't usually suggest this for most commits > that are missing a commit message, but this one is actively misleading so > might be trickier when people are doing archaeology)? > > On Mon, Nov 23, 2015 at 11:56 AM, Ehsan Akhgari via cfe-commits < > cfe-commits@lists.llvm.org> wrote: > >> Author: ehsan >> Date: Mon Nov 23 13:56:46 2015 >> New Revision: 253909 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=253909&view=rev >> Log: >> Make clang_Cursor_getMangling not mangle if the declaration isn't mangled >> >> Right now clang_Cursor_getMangling will attempt to mangle any >> declaration, even if the declaration isn't mangled (extern C). This >> results in a partially mangled name which isn't useful for much. This >> patch makes clang_Cursor_getMangling return an empty string if the >> declaration isn't mangled. >> >> Patch by Michael Wu <m...@mozilla.com>. >> >> Added: >> cfe/trunk/test/Index/symbol-visibility.c >> Modified: >> cfe/trunk/include/clang-c/Index.h >> cfe/trunk/tools/c-index-test/c-index-test.c >> cfe/trunk/tools/libclang/CIndex.cpp >> cfe/trunk/tools/libclang/libclang.exports >> >> Modified: cfe/trunk/include/clang-c/Index.h >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang-c/Index.h?rev=253909&r1=253908&r2=253909&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang-c/Index.h (original) >> +++ cfe/trunk/include/clang-c/Index.h Mon Nov 23 13:56:46 2015 >> @@ -2461,6 +2461,32 @@ enum CXLinkageKind { >> CINDEX_LINKAGE enum CXLinkageKind clang_getCursorLinkage(CXCursor >> cursor); >> >> /** >> + * \brief Describe the visibility of the entity referred to by a cursor. >> + * >> + * This returns the default visibility if not explicitly specified by >> + * a visibility attribute. The default visibility may be changed by >> + * commandline arguments. >> + * >> + * \param cursor The cursor to query. >> + * >> + * \returns The visibility of the cursor. >> + */ >> +enum CXVisibilityKind { >> + /** \brief This value indicates that no visibility information is >> available >> + * for a provided CXCursor. */ >> + CXVisibility_Invalid, >> + >> + /** \brief Symbol not seen by the linker. */ >> + CXVisibility_Hidden, >> + /** \brief Symbol seen by the linker but resolves to a symbol inside >> this object. */ >> + CXVisibility_Protected, >> + /** \brief Symbol seen by the linker and acts like a normal symbol. */ >> + CXVisibility_Default, >> +}; >> + >> +CINDEX_LINKAGE enum CXVisibilityKind clang_getCursorVisibility(CXCursor >> cursor); >> + >> +/** >> * \brief Determine the availability of the entity that this cursor >> refers to, >> * taking the current target platform into account. >> * >> >> Added: cfe/trunk/test/Index/symbol-visibility.c >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/symbol-visibility.c?rev=253909&view=auto >> >> ============================================================================== >> --- cfe/trunk/test/Index/symbol-visibility.c (added) >> +++ cfe/trunk/test/Index/symbol-visibility.c Mon Nov 23 13:56:46 2015 >> @@ -0,0 +1,7 @@ >> +// RUN: c-index-test -test-print-visibility %s | FileCheck %s >> + >> +__attribute__ ((visibility ("default"))) void foo1(); >> +__attribute__ ((visibility ("hidden"))) void foo2(); >> + >> +// CHECK: FunctionDecl=foo1:3:47visibility=Default >> +// CHECK: FunctionDecl=foo2:4:46visibility=Hidden >> >> Modified: cfe/trunk/tools/c-index-test/c-index-test.c >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/c-index-test/c-index-test.c?rev=253909&r1=253908&r2=253909&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/c-index-test/c-index-test.c (original) >> +++ cfe/trunk/tools/c-index-test/c-index-test.c Mon Nov 23 13:56:46 2015 >> @@ -1248,6 +1248,32 @@ static enum CXChildVisitResult PrintLink >> } >> >> >> >> /******************************************************************************/ >> +/* Visibility testing. >> */ >> >> +/******************************************************************************/ >> + >> +static enum CXChildVisitResult PrintVisibility(CXCursor cursor, CXCursor >> p, >> + CXClientData d) { >> + const char *visibility = 0; >> + >> + if (clang_isInvalid(clang_getCursorKind(cursor))) >> + return CXChildVisit_Recurse; >> + >> + switch (clang_getCursorVisibility(cursor)) { >> + case CXVisibility_Invalid: break; >> + case CXVisibility_Hidden: visibility = "Hidden"; break; >> + case CXVisibility_Protected: visibility = "Protected"; break; >> + case CXVisibility_Default: visibility = "Default"; break; >> + } >> + >> + if (visibility) { >> + PrintCursor(cursor, NULL); >> + printf("visibility=%s\n", visibility); >> + } >> + >> + return CXChildVisit_Recurse; >> +} >> + >> >> +/******************************************************************************/ >> /* Typekind testing. >> */ >> >> >> /******************************************************************************/ >> >> @@ -4084,6 +4110,7 @@ static void print_usage(void) { >> " c-index-test -test-inclusion-stack-tu <AST file>\n"); >> fprintf(stderr, >> " c-index-test -test-print-linkage-source {<args>}*\n" >> + " c-index-test -test-print-visibility {<args>}*\n" >> " c-index-test -test-print-type {<args>}*\n" >> " c-index-test -test-print-type-size {<args>}*\n" >> " c-index-test -test-print-bitwidth {<args>}*\n" >> @@ -4171,6 +4198,9 @@ int cindextest_main(int argc, const char >> else if (argc > 2 && strcmp(argv[1], "-test-print-linkage-source") == >> 0) >> return perform_test_load_source(argc - 2, argv + 2, "all", >> PrintLinkage, >> NULL); >> + else if (argc > 2 && strcmp(argv[1], "-test-print-visibility") == 0) >> + return perform_test_load_source(argc - 2, argv + 2, "all", >> PrintVisibility, >> + NULL); >> else if (argc > 2 && strcmp(argv[1], "-test-print-type") == 0) >> return perform_test_load_source(argc - 2, argv + 2, "all", >> PrintType, 0); >> >> Modified: cfe/trunk/tools/libclang/CIndex.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=253909&r1=253908&r2=253909&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/libclang/CIndex.cpp (original) >> +++ cfe/trunk/tools/libclang/CIndex.cpp Mon Nov 23 13:56:46 2015 >> @@ -6451,6 +6451,27 @@ CXLinkageKind clang_getCursorLinkage(CXC >> } // end: extern "C" >> >> >> >> //===----------------------------------------------------------------------===// >> +// Operations for querying visibility of a cursor. >> >> +//===----------------------------------------------------------------------===// >> + >> +extern "C" { >> +CXVisibilityKind clang_getCursorVisibility(CXCursor cursor) { >> + if (!clang_isDeclaration(cursor.kind)) >> + return CXVisibility_Invalid; >> + >> + const Decl *D = cxcursor::getCursorDecl(cursor); >> + if (const NamedDecl *ND = dyn_cast_or_null<NamedDecl>(D)) >> + switch (ND->getVisibility()) { >> + case HiddenVisibility: return CXVisibility_Hidden; >> + case ProtectedVisibility: return CXVisibility_Protected; >> + case DefaultVisibility: return CXVisibility_Default; >> + }; >> + >> + return CXVisibility_Invalid; >> +} >> +} // end: extern "C" >> + >> >> +//===----------------------------------------------------------------------===// >> // Operations for querying language of a cursor. >> >> >> //===----------------------------------------------------------------------===// >> >> >> Modified: cfe/trunk/tools/libclang/libclang.exports >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/libclang.exports?rev=253909&r1=253908&r2=253909&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/libclang/libclang.exports (original) >> +++ cfe/trunk/tools/libclang/libclang.exports Mon Nov 23 13:56:46 2015 >> @@ -176,6 +176,7 @@ clang_getCursorSemanticParent >> clang_getCursorSpelling >> clang_getCursorType >> clang_getCursorUSR >> +clang_getCursorVisibility >> clang_getDeclObjCTypeEncoding >> clang_getDefinitionSpellingAndExtent >> clang_getDiagnostic >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> > > -- Ehsan
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits