[PATCH] D148330: [clang] Do not crash on undefined template partial specialization

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 14 06:08:01 PDT 2023


erichkeane added inline comments.


================
Comment at: clang/lib/Sema/SemaCXXScopeSpec.cpp:134
                                          "specifier in SFINAE context?");
             if (!hasReachableDefinition(PartialSpec))
               diagnoseMissingImport(SS.getLastQualifierNameLoc(), PartialSpec,
----------------
I would expect 'hasReachableDefinition' to check boht reachable AND definition :) 

That said, I doubt the 'missing import' error is an appropriate one here.


================
Comment at: clang/test/SemaCXX/undefined-partial-specialization.cpp:12
+template<typename T>
+void boo<T, true>::foo(){} // expected-error{{nested name specifier 'boo<T, true>::' for declaration does not refer into a class, class template or class template partial specialization}}
+
----------------
I don't think this is correct.  The diagnostic is inaccurate, it DOES refer to a class template partial specialization (I can see it on line 9!), but the problem is that it is incomplete.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D148330/new/

https://reviews.llvm.org/D148330



More information about the cfe-commits mailing list