[clang] 4cebe5a - [clang] NFC: add test for cwg2398 ambiguity issue

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Mon May 20 18:50:10 PDT 2024


Author: Matheus Izvekov
Date: 2024-05-20T22:49:53-03:00
New Revision: 4cebe5a43ba83eab477358ef4da665b43463bb68

URL: https://github.com/llvm/llvm-project/commit/4cebe5a43ba83eab477358ef4da665b43463bb68
DIFF: https://github.com/llvm/llvm-project/commit/4cebe5a43ba83eab477358ef4da665b43463bb68.diff

LOG: [clang] NFC: add test for cwg2398 ambiguity issue

Added: 
    

Modified: 
    clang/test/SemaTemplate/cwg2398.cpp

Removed: 
    


################################################################################
diff  --git a/clang/test/SemaTemplate/cwg2398.cpp b/clang/test/SemaTemplate/cwg2398.cpp
index 31686c4bc9805..e3b5e575374d3 100644
--- a/clang/test/SemaTemplate/cwg2398.cpp
+++ b/clang/test/SemaTemplate/cwg2398.cpp
@@ -59,6 +59,21 @@ namespace templ {
   template struct C<B<int>>;
 } // namespace templ
 
+namespace class_template {
+  template <class T1, class T2 = float> struct A;
+
+  template <class T3> struct B;
+
+  template <template <class T4> class TT1, class T5> struct B<TT1<T5>>;
+  // new-note at -1 {{partial specialization matches}}
+
+  template <class T6, class T7> struct B<A<T6, T7>> {};
+  // new-note at -1 {{partial specialization matches}}
+
+  template struct B<A<int>>;
+  // new-error at -1 {{ambiguous partial specialization}}
+} // namespace class_template
+
 namespace type_pack1 {
   template<class T2> struct A;
   template<template<class ...T3s> class TT1, class T4> struct A<TT1<T4>>   ;


        


More information about the cfe-commits mailing list