I don't, but reverting your change made the test pass again. I was able to reproduce locally by adding -target ppc64le-unknown-linux to the run-line in test/Index/opencl-types.cl.
On Wed, Jan 3, 2018 at 3:23 PM, Ivan Donchevskii <ivan.donchevs...@qt.io> wrote: > Hi! > I saw it but I don't see an issue in this change. Do you have an idea why > that happened? > > ________________________________ > From: hwennb...@google.com <hwennb...@google.com> on behalf of Hans Wennborg > <h...@chromium.org> > Sent: Wednesday, January 3, 2018 3:21:52 PM > To: Ivan Donchevskii > Cc: cfe-commits > Subject: Re: r321697 - [libclang] Support querying whether a declaration is > invalid > > This caused failures on the buildbots. I've reverted it and the > commits that depended on it in r321708. See that commit message for > more details. > > On Wed, Jan 3, 2018 at 10:49 AM, Ivan Donchevskii via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> Author: yvvan >> Date: Wed Jan 3 01:49:31 2018 >> New Revision: 321697 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=321697&view=rev >> Log: >> [libclang] Support querying whether a declaration is invalid >> >> This is useful for e.g. highlighting purposes in an IDE. >> >> Patch by Nikolai Kosjar. >> >> Differential Revision: https://reviews.llvm.org/D40072 >> >> Modified: >> cfe/trunk/include/clang-c/Index.h >> cfe/trunk/test/Index/print-type-size.cpp >> 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=321697&r1=321696&r2=321697&view=diff >> >> ============================================================================== >> --- cfe/trunk/include/clang-c/Index.h (original) >> +++ cfe/trunk/include/clang-c/Index.h Wed Jan 3 01:49:31 2018 >> @@ -29,13 +29,13 @@ >> * CINDEX_VERSION_MAJOR is intended for "major" source/ABI breaking >> changes. >> * >> * The policy about the libclang API was always to keep it source and ABI >> - * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable. >> - */ >> -#define CINDEX_VERSION_MAJOR 0 >> -#define CINDEX_VERSION_MINOR 45 >> - >> -#define CINDEX_VERSION_ENCODE(major, minor) ( \ >> - ((major) * 10000) \ >> + * compatible, thus CINDEX_VERSION_MAJOR is expected to remain stable. >> + */ >> +#define CINDEX_VERSION_MAJOR 0 >> +#define CINDEX_VERSION_MINOR 46 >> + >> +#define CINDEX_VERSION_ENCODE(major, minor) ( \ >> + ((major) * 10000) \ >> + ((minor) * 1)) >> >> #define CINDEX_VERSION CINDEX_VERSION_ENCODE( \ >> @@ -2638,12 +2638,22 @@ CINDEX_LINKAGE enum CXCursorKind clang_g >> >> /** >> * \brief Determine whether the given cursor kind represents a >> declaration. >> - */ >> -CINDEX_LINKAGE unsigned clang_isDeclaration(enum CXCursorKind); >> - >> -/** >> - * \brief Determine whether the given cursor kind represents a simple >> - * reference. >> + */ >> +CINDEX_LINKAGE unsigned clang_isDeclaration(enum CXCursorKind); >> + >> +/** >> + * \brief Determine whether the given declaration is invalid. >> + * >> + * A declaration is invalid if it could not be parsed successfully. >> + * >> + * \returns non-zero if the cursor represents a declaration and it is >> + * invalid, otherwise NULL. >> + */ >> +CINDEX_LINKAGE unsigned clang_isInvalidDeclaration(CXCursor); >> + >> +/** >> + * \brief Determine whether the given cursor kind represents a simple >> + * reference. >> * >> * Note that other kinds of cursors (such as expressions) can also refer >> to >> * other cursors. Use clang_getCursorReferenced() to determine whether a >> >> Modified: cfe/trunk/test/Index/print-type-size.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Index/print-type-size.cpp?rev=321697&r1=321696&r2=321697&view=diff >> >> ============================================================================== >> --- cfe/trunk/test/Index/print-type-size.cpp (original) >> +++ cfe/trunk/test/Index/print-type-size.cpp Wed Jan 3 01:49:31 2018 >> @@ -1,14 +1,14 @@ >> // from SemaCXX/class-layout.cpp >> // RUN: c-index-test -test-print-type-size %s -target x86_64-pc-linux-gnu >> | FileCheck -check-prefix=CHECK64 %s >> // RUN: c-index-test -test-print-type-size %s -target i386-apple-darwin9 >> | FileCheck -check-prefix=CHECK32 %s >> - >> -namespace basic { >> - >> -// CHECK64: VarDecl=v:[[@LINE+2]]:6 (Definition) [type=void] >> [typekind=Void] >> -// CHECK32: VarDecl=v:[[@LINE+1]]:6 (Definition) [type=void] >> [typekind=Void] >> -void v; >> - >> -// CHECK64: VarDecl=v1:[[@LINE+2]]:7 (Definition) [type=void *] >> [typekind=Pointer] [sizeof=8] [alignof=8] >> + >> +namespace basic { >> + >> +// CHECK64: VarDecl=v:[[@LINE+2]]:6 (Definition) (invalid) [type=void] >> [typekind=Void] >> +// CHECK32: VarDecl=v:[[@LINE+1]]:6 (Definition) (invalid) [type=void] >> [typekind=Void] >> +void v; >> + >> +// CHECK64: VarDecl=v1:[[@LINE+2]]:7 (Definition) [type=void *] >> [typekind=Pointer] [sizeof=8] [alignof=8] >> // CHECK32: VarDecl=v1:[[@LINE+1]]:7 (Definition) [type=void *] >> [typekind=Pointer] [sizeof=4] [alignof=4] >> void *v1; >> >> >> 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=321697&r1=321696&r2=321697&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/c-index-test/c-index-test.c (original) >> +++ cfe/trunk/tools/c-index-test/c-index-test.c Wed Jan 3 01:49:31 2018 >> @@ -809,12 +809,14 @@ static void PrintCursor(CXCursor Cursor, >> if (clang_EnumDecl_isScoped(Cursor)) >> printf(" (scoped)"); >> if (clang_Cursor_isVariadic(Cursor)) >> - printf(" (variadic)"); >> - if (clang_Cursor_isObjCOptional(Cursor)) >> - printf(" (@optional)"); >> - >> - switch (clang_getCursorExceptionSpecificationType(Cursor)) >> - { >> + printf(" (variadic)"); >> + if (clang_Cursor_isObjCOptional(Cursor)) >> + printf(" (@optional)"); >> + if (clang_isInvalidDeclaration(Cursor)) >> + printf(" (invalid)"); >> + >> + switch (clang_getCursorExceptionSpecificationType(Cursor)) >> + { >> case CXCursor_ExceptionSpecificationKind_None: >> break; >> >> >> Modified: cfe/trunk/tools/libclang/CIndex.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/CIndex.cpp?rev=321697&r1=321696&r2=321697&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/libclang/CIndex.cpp (original) >> +++ cfe/trunk/tools/libclang/CIndex.cpp Wed Jan 3 01:49:31 2018 >> @@ -5418,12 +5418,21 @@ unsigned clang_isInvalid(enum CXCursorKi >> >> unsigned clang_isDeclaration(enum CXCursorKind K) { >> return (K >= CXCursor_FirstDecl && K <= CXCursor_LastDecl) || >> - (K >= CXCursor_FirstExtraDecl && K <= CXCursor_LastExtraDecl); >> -} >> - >> -unsigned clang_isReference(enum CXCursorKind K) { >> - return K >= CXCursor_FirstRef && K <= CXCursor_LastRef; >> -} >> + (K >= CXCursor_FirstExtraDecl && K <= CXCursor_LastExtraDecl); >> +} >> + >> +unsigned clang_isInvalidDeclaration(CXCursor C) { >> + if (clang_isDeclaration(C.kind)) { >> + if (const Decl *D = getCursorDecl(C)) >> + return D->isInvalidDecl(); >> + } >> + >> + return 0; >> +} >> + >> +unsigned clang_isReference(enum CXCursorKind K) { >> + return K >= CXCursor_FirstRef && K <= CXCursor_LastRef; >> +} >> >> unsigned clang_isExpression(enum CXCursorKind K) { >> return K >= CXCursor_FirstExpr && K <= CXCursor_LastExpr; >> >> Modified: cfe/trunk/tools/libclang/libclang.exports >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/libclang/libclang.exports?rev=321697&r1=321696&r2=321697&view=diff >> >> ============================================================================== >> --- cfe/trunk/tools/libclang/libclang.exports (original) >> +++ cfe/trunk/tools/libclang/libclang.exports Wed Jan 3 01:49:31 2018 >> @@ -288,12 +288,13 @@ clang_index_isEntityObjCContainerKind >> clang_index_setClientContainer >> clang_index_setClientEntity >> clang_isAttribute >> -clang_isConstQualifiedType >> -clang_isCursorDefinition >> -clang_isDeclaration >> -clang_isExpression >> -clang_isFileMultipleIncludeGuarded >> -clang_isFunctionTypeVariadic >> +clang_isConstQualifiedType >> +clang_isCursorDefinition >> +clang_isDeclaration >> +clang_isInvalidDeclaration >> +clang_isExpression >> +clang_isFileMultipleIncludeGuarded >> +clang_isFunctionTypeVariadic >> clang_isInvalid >> clang_isPODType >> clang_isPreprocessing >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits