[clang] [clang] fix structural comparison for dependent class member pointer (PR #133343)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 28 11:14:47 PDT 2025


================
@@ -154,10 +154,30 @@ namespace TestMemberPointerPartialSpec {
 // DUMP-NEXT:  |-TemplateArgument type 'type-parameter-0-0 type-parameter-0-1::*'
 // DUMP-NEXT:  | `-MemberPointerType {{.+}} 'type-parameter-0-0 type-parameter-0-1::*' dependent
 // DUMP-NEXT:  |   |-TemplateTypeParmType {{.+}} 'type-parameter-0-1' dependent depth 0 index 1
-// DUMP-NEXT:  |   |-<<<NULL>>>
 // DUMP-NEXT:  |   `-TemplateTypeParmType {{.+}} 'type-parameter-0-0' dependent depth 0 index 0
 } // namespace TestMemberPointerPartialSpec
 
+namespace TestDependentMemberPointer {
+  template <class U> struct A {
+    using X = int U::*;
+    using Y = int U::test::*;
+    using Z = int U::template V<int>::*;
+  };
+// DUMP-LABEL: NamespaceDecl {{.+}} TestDependentMemberPointer{{$}}
+// DUMP:       |-TypeAliasDecl {{.+}} X 'int U::*'{{$}}
+// DUMP-NEXT:  | `-MemberPointerType {{.+}} 'int U::*' dependent
+// DUMP-NEXT:  |   |-TemplateTypeParmType {{.+}} 'U' dependent depth 0 index 0
+// DUMP-NEXT:  |   | `-TemplateTypeParm {{.+}} 'U'
+// DUMP-NEXT:  |   `-BuiltinType {{.+}} 'int'
+// DUMP-NEXT:  |-TypeAliasDecl {{.+}} Y 'int U::test::*'{{$}}
+// DUMP-NEXT:  | `-MemberPointerType {{.+}} 'int U::test::*' dependent
+// DUMP-NEXT:  |   `-BuiltinType {{.+}} 'int'
+// DUMP-NEXT:  `-TypeAliasDecl {{.+}} Z 'int U::template V<int>::*'{{$}}
+// DUMP-NEXT:    `-MemberPointerType {{.+}} 'int U::template V<int>::*' dependent
+// DUMP-NEXT:      |-DependentTemplateSpecializationType {{.+}} 'U::template V<int>' dependent
+// DUMP-NEXT:      `-BuiltinType {{.+}} 'int'
+} // namespoace TestDependentMemberPointer
----------------
mizvekov wrote:

fixed in main, thanks

https://github.com/llvm/llvm-project/pull/133343


More information about the cfe-commits mailing list