[PATCH] D138322: [Index] Add various missing USR generation
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG699ae92f0453: [Index] Add various missing USR generation (authored by bnbarham). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138322/new/ https://reviews.llvm.org/D138322 Files: clang/lib/Index/USRGeneration.cpp clang/test/Index/index-builtin-fixedpoint.c clang/test/Index/index-builtin-opencl.clcpp clang/test/Index/index-builtin-ppc.cpp clang/test/Index/index-builtin-riscv.c clang/test/Index/index-builtin-sve.cpp clang/test/Index/index-msguid.cpp Index: clang/test/Index/index-msguid.cpp === --- /dev/null +++ clang/test/Index/index-msguid.cpp @@ -0,0 +1,14 @@ +template +class GUIDHolder { +public: + virtual ~GUIDHolder() {} +}; + +class __declspec(uuid("12345678-1234-5678-ABCD-12345678ABCD")) GUIDInterface {}; + +class GUIDUse : public GUIDHolder { + ~GUIDUse() {} + // CHECK: RelOver | ~GUIDHolder | c:@S@GUIDHolder>#$@S@GUIDInterface#@MG@GUID{12345678-1234-5678-abcd-12345678abcd}@F@~GUIDHolder# +}; + +// RUN: c-index-test core -print-source-symbols -- -std=c++11 -fms-extensions %s | FileCheck %s Index: clang/test/Index/index-builtin-sve.cpp === --- /dev/null +++ clang/test/Index/index-builtin-sve.cpp @@ -0,0 +1,7 @@ +void testSve(__SVInt8_t sve); +// CHECK: USR: c:@F@testSve#@BT@__SVInt8_t# + +void testBf16(__bf16); +// CHECK: USR: c:@F@testBf16#@BT@__bf16# + +// RUN: c-index-test -index-file %s --target=aarch64 -target-feature +bf16 -target-feature +sve -std=c++11 | FileCheck %s Index: clang/test/Index/index-builtin-riscv.c === --- /dev/null +++ clang/test/Index/index-builtin-riscv.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testRiscv(__rvv_int8mf8_t); +// CHECK: USR: c:@F@testRiscv#@BT@__rvv_int8mf8_t# + +// RUN: c-index-test -index-file %s --target=riscv64 -target-feature +v | FileCheck %s Index: clang/test/Index/index-builtin-ppc.cpp === --- /dev/null +++ clang/test/Index/index-builtin-ppc.cpp @@ -0,0 +1,7 @@ +void testPpc(__vector_quad); +// CHECK: USR: c:@F@testPpc#@BT@__vector_quad# + +void testIBM(__ibm128); +// CHECK: USR: c:@F@testIBM#@BT@__ibm128# +// +// RUN: c-index-test -index-file %s --target=powerpc64 -target-cpu pwr10 | FileCheck %s Index: clang/test/Index/index-builtin-opencl.clcpp === --- /dev/null +++ clang/test/Index/index-builtin-opencl.clcpp @@ -0,0 +1,7 @@ +void testImage(read_only image1d_t); +// CHECK: USR: c:@F@testImage#@BT@ro_image1d# + +void testExt(intel_sub_group_avc_mce_payload_t) {} +// CHECK: USR: c:@F@testExt#@BT@intel_sub_group_avc_mce_payload_t# + +// RUN: c-index-test -index-file %s --target=spir | FileCheck %s Index: clang/test/Index/index-builtin-fixedpoint.c === --- /dev/null +++ clang/test/Index/index-builtin-fixedpoint.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testFixedPoint(_Accum); +// CHECK: USR: c:@F@testFixedPoint#@BT@Accum# + +// RUN: c-index-test -index-file %s -ffixed-point | FileCheck %s Index: clang/lib/Index/USRGeneration.cpp === --- clang/lib/Index/USRGeneration.cpp +++ clang/lib/Index/USRGeneration.cpp @@ -168,6 +168,8 @@ void VisitTemplateName(TemplateName Name); void VisitTemplateArgument(const TemplateArgument ); + void VisitMSGuidDecl(const MSGuidDecl *D); + /// Emit a Decl's name using NamedDecl::printName() and return true if /// the decl had no name. bool EmitDeclName(const NamedDecl *D); @@ -658,120 +660,157 @@ } if (const BuiltinType *BT = T->getAs()) { - unsigned char c = '\0'; switch (BT->getKind()) { case BuiltinType::Void: - c = 'v'; break; + Out << 'v'; break; case BuiltinType::Bool: - c = 'b'; break; + Out << 'b'; break; case BuiltinType::UChar: - c = 'c'; break; + Out << 'c'; break; case BuiltinType::Char8: - c = 'u'; break; // FIXME: Check this doesn't collide + Out << 'u'; break; case BuiltinType::Char16: - c = 'q'; break; + Out << 'q'; break; case BuiltinType::Char32: - c = 'w'; break; + Out << 'w'; break; case BuiltinType::UShort: - c = 's'; break; + Out << 's'; break; case BuiltinType::UInt: - c = 'i'; break; + Out << 'i'; break; case BuiltinType::ULong: - c = 'l'; break; + Out << 'l'; break; case BuiltinType::ULongLong: - c = 'k'; break; +
[PATCH] D138322: [Index] Add various missing USR generation
bnbarham updated this revision to Diff 476614. bnbarham added a comment. Add missing --target Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138322/new/ https://reviews.llvm.org/D138322 Files: clang/lib/Index/USRGeneration.cpp clang/test/Index/index-builtin-fixedpoint.c clang/test/Index/index-builtin-opencl.clcpp clang/test/Index/index-builtin-ppc.cpp clang/test/Index/index-builtin-riscv.c clang/test/Index/index-builtin-sve.cpp clang/test/Index/index-msguid.cpp Index: clang/test/Index/index-msguid.cpp === --- /dev/null +++ clang/test/Index/index-msguid.cpp @@ -0,0 +1,14 @@ +template +class GUIDHolder { +public: + virtual ~GUIDHolder() {} +}; + +class __declspec(uuid("12345678-1234-5678-ABCD-12345678ABCD")) GUIDInterface {}; + +class GUIDUse : public GUIDHolder { + ~GUIDUse() {} + // CHECK: RelOver | ~GUIDHolder | c:@S@GUIDHolder>#$@S@GUIDInterface#@MG@GUID{12345678-1234-5678-abcd-12345678abcd}@F@~GUIDHolder# +}; + +// RUN: c-index-test core -print-source-symbols -- -std=c++11 -fms-extensions %s | FileCheck %s Index: clang/test/Index/index-builtin-sve.cpp === --- /dev/null +++ clang/test/Index/index-builtin-sve.cpp @@ -0,0 +1,7 @@ +void testSve(__SVInt8_t sve); +// CHECK: USR: c:@F@testSve#@BT@__SVInt8_t# + +void testBf16(__bf16); +// CHECK: USR: c:@F@testBf16#@BT@__bf16# + +// RUN: c-index-test -index-file %s --target=aarch64 -target-feature +bf16 -target-feature +sve -std=c++11 | FileCheck %s Index: clang/test/Index/index-builtin-riscv.c === --- /dev/null +++ clang/test/Index/index-builtin-riscv.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testRiscv(__rvv_int8mf8_t); +// CHECK: USR: c:@F@testRiscv#@BT@__rvv_int8mf8_t# + +// RUN: c-index-test -index-file %s --target=riscv64 -target-feature +v | FileCheck %s Index: clang/test/Index/index-builtin-ppc.cpp === --- /dev/null +++ clang/test/Index/index-builtin-ppc.cpp @@ -0,0 +1,7 @@ +void testPpc(__vector_quad); +// CHECK: USR: c:@F@testPpc#@BT@__vector_quad# + +void testIBM(__ibm128); +// CHECK: USR: c:@F@testIBM#@BT@__ibm128# +// +// RUN: c-index-test -index-file %s --target=powerpc64 -target-cpu pwr10 | FileCheck %s Index: clang/test/Index/index-builtin-opencl.clcpp === --- /dev/null +++ clang/test/Index/index-builtin-opencl.clcpp @@ -0,0 +1,7 @@ +void testImage(read_only image1d_t); +// CHECK: USR: c:@F@testImage#@BT@ro_image1d# + +void testExt(intel_sub_group_avc_mce_payload_t) {} +// CHECK: USR: c:@F@testExt#@BT@intel_sub_group_avc_mce_payload_t# + +// RUN: c-index-test -index-file %s --target=spir | FileCheck %s Index: clang/test/Index/index-builtin-fixedpoint.c === --- /dev/null +++ clang/test/Index/index-builtin-fixedpoint.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testFixedPoint(_Accum); +// CHECK: USR: c:@F@testFixedPoint#@BT@Accum# + +// RUN: c-index-test -index-file %s -ffixed-point | FileCheck %s Index: clang/lib/Index/USRGeneration.cpp === --- clang/lib/Index/USRGeneration.cpp +++ clang/lib/Index/USRGeneration.cpp @@ -168,6 +168,8 @@ void VisitTemplateName(TemplateName Name); void VisitTemplateArgument(const TemplateArgument ); + void VisitMSGuidDecl(const MSGuidDecl *D); + /// Emit a Decl's name using NamedDecl::printName() and return true if /// the decl had no name. bool EmitDeclName(const NamedDecl *D); @@ -658,120 +660,157 @@ } if (const BuiltinType *BT = T->getAs()) { - unsigned char c = '\0'; switch (BT->getKind()) { case BuiltinType::Void: - c = 'v'; break; + Out << 'v'; break; case BuiltinType::Bool: - c = 'b'; break; + Out << 'b'; break; case BuiltinType::UChar: - c = 'c'; break; + Out << 'c'; break; case BuiltinType::Char8: - c = 'u'; break; // FIXME: Check this doesn't collide + Out << 'u'; break; case BuiltinType::Char16: - c = 'q'; break; + Out << 'q'; break; case BuiltinType::Char32: - c = 'w'; break; + Out << 'w'; break; case BuiltinType::UShort: - c = 's'; break; + Out << 's'; break; case BuiltinType::UInt: - c = 'i'; break; + Out << 'i'; break; case BuiltinType::ULong: - c = 'l'; break; + Out << 'l'; break; case BuiltinType::ULongLong: - c = 'k'; break; + Out << 'k'; break; case BuiltinType::UInt128: - c = 'j'; break; + Out << 'j'; break; case
[PATCH] D138322: [Index] Add various missing USR generation
benlangmuir accepted this revision. benlangmuir added a comment. This revision is now accepted and ready to land. LGTM once the test failure is fixed Comment at: clang/test/Index/index-builtin-sve.cpp:7 + +// RUN: c-index-test -index-file %s -target-feature +bf16 -target-feature +sve -std=c++11 | FileCheck %s Needs a --target=aarch64 or similar to use sve. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D138322/new/ https://reviews.llvm.org/D138322 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D138322: [Index] Add various missing USR generation
bnbarham created this revision. bnbarham added a reviewer: arphaman. Herald added subscribers: frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, kbarton, nemanjai. Herald added a project: All. bnbarham requested review of this revision. Herald added subscribers: cfe-commits, pcwang-thead. Herald added a project: clang. Over the years there's been many builtin types added without corresponding USRs. Add a `@BT@` USR for all these types. Also add a comment so that hopefully this doesn't continue happening. `MSGuid` was also missing a USR, use `@MG@GUID{}` for it. Resolves rdar://102198268. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D138322 Files: clang/lib/Index/USRGeneration.cpp clang/test/Index/index-builtin-fixedpoint.c clang/test/Index/index-builtin-opencl.clcpp clang/test/Index/index-builtin-ppc.cpp clang/test/Index/index-builtin-riscv.c clang/test/Index/index-builtin-sve.cpp clang/test/Index/index-msguid.cpp Index: clang/test/Index/index-msguid.cpp === --- /dev/null +++ clang/test/Index/index-msguid.cpp @@ -0,0 +1,14 @@ +template +class GUIDHolder { +public: + virtual ~GUIDHolder() {} +}; + +class __declspec(uuid("12345678-1234-5678-ABCD-12345678ABCD")) GUIDInterface {}; + +class GUIDUse : public GUIDHolder { + ~GUIDUse() {} + // CHECK: RelOver | ~GUIDHolder | c:@S@GUIDHolder>#$@S@GUIDInterface#@MG@GUID{12345678-1234-5678-abcd-12345678abcd}@F@~GUIDHolder# +}; + +// RUN: c-index-test core -print-source-symbols -- -std=c++11 -fms-extensions %s | FileCheck %s Index: clang/test/Index/index-builtin-sve.cpp === --- /dev/null +++ clang/test/Index/index-builtin-sve.cpp @@ -0,0 +1,7 @@ +void testSve(__SVInt8_t sve); +// CHECK: USR: c:@F@testSve#@BT@__SVInt8_t# + +void testBf16(__bf16); +// CHECK: USR: c:@F@testBf16#@BT@__bf16# + +// RUN: c-index-test -index-file %s -target-feature +bf16 -target-feature +sve -std=c++11 | FileCheck %s Index: clang/test/Index/index-builtin-riscv.c === --- /dev/null +++ clang/test/Index/index-builtin-riscv.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testRiscv(__rvv_int8mf8_t); +// CHECK: USR: c:@F@testRiscv#@BT@__rvv_int8mf8_t# + +// RUN: c-index-test -index-file %s --target=riscv64 -target-feature +v | FileCheck %s Index: clang/test/Index/index-builtin-ppc.cpp === --- /dev/null +++ clang/test/Index/index-builtin-ppc.cpp @@ -0,0 +1,7 @@ +void testPpc(__vector_quad); +// CHECK: USR: c:@F@testPpc#@BT@__vector_quad# + +void testIBM(__ibm128); +// CHECK: USR: c:@F@testIBM#@BT@__ibm128# +// +// RUN: c-index-test -index-file %s --target=powerpc64 -target-cpu pwr10 | FileCheck %s Index: clang/test/Index/index-builtin-opencl.clcpp === --- /dev/null +++ clang/test/Index/index-builtin-opencl.clcpp @@ -0,0 +1,7 @@ +void testImage(read_only image1d_t); +// CHECK: USR: c:@F@testImage#@BT@ro_image1d# + +void testExt(intel_sub_group_avc_mce_payload_t) {} +// CHECK: USR: c:@F@testExt#@BT@intel_sub_group_avc_mce_payload_t# + +// RUN: c-index-test -index-file %s --target=spir | FileCheck %s Index: clang/test/Index/index-builtin-fixedpoint.c === --- /dev/null +++ clang/test/Index/index-builtin-fixedpoint.c @@ -0,0 +1,5 @@ +__attribute__((overloadable)) +void testFixedPoint(_Accum); +// CHECK: USR: c:@F@testFixedPoint#@BT@Accum# + +// RUN: c-index-test -index-file %s -ffixed-point | FileCheck %s Index: clang/lib/Index/USRGeneration.cpp === --- clang/lib/Index/USRGeneration.cpp +++ clang/lib/Index/USRGeneration.cpp @@ -168,6 +168,8 @@ void VisitTemplateName(TemplateName Name); void VisitTemplateArgument(const TemplateArgument ); + void VisitMSGuidDecl(const MSGuidDecl *D); + /// Emit a Decl's name using NamedDecl::printName() and return true if /// the decl had no name. bool EmitDeclName(const NamedDecl *D); @@ -658,120 +660,157 @@ } if (const BuiltinType *BT = T->getAs()) { - unsigned char c = '\0'; switch (BT->getKind()) { case BuiltinType::Void: - c = 'v'; break; + Out << 'v'; break; case BuiltinType::Bool: - c = 'b'; break; + Out << 'b'; break; case BuiltinType::UChar: - c = 'c'; break; + Out << 'c'; break; case BuiltinType::Char8: - c = 'u'; break; // FIXME: Check this doesn't collide + Out << 'u'; break; case BuiltinType::Char16: - c = 'q'; break; + Out << 'q'; break;