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

Mariya Podchishchaeva via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 14 06:51:16 PDT 2023


Fznamznon marked an inline comment as not done.
Fznamznon added inline comments.


================
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}}
+
----------------
erichkeane wrote:
> 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.
Huh, it seems it was my change that made this diagnostic inaccurate. I was under impression that it shouldn't have done this.
For c++17 it used to say "error: out-of-line definition of 'foo' from class 'boo<type-parameter-0-0, true>' without definition" without crash. Now it is inaccurate for both c++17 and c++20. I'll look into this more.


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