[PATCH] D138322: [Index] Add various missing USR generation

2022-11-28 Thread Ben Barham via Phabricator via cfe-commits
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

2022-11-18 Thread Ben Barham via Phabricator via cfe-commits
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

2022-11-18 Thread Ben Langmuir via Phabricator via cfe-commits
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

2022-11-18 Thread Ben Barham via Phabricator via cfe-commits
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;