JonasToth added inline comments.
================
Comment at: test/clang-tidy/hicpp-exception-baseclass.cpp:191
+void templated_thrower() { throw T{}(); }
+// CHECK-MESSAGES: [[@LINE-1]]:34: warning: throwing an exception whose type
'int' is not derived from 'std::exception'
+
----------------
alexfh wrote:
> hokein wrote:
> > I think giving message on the template function here is confusing to users
> > even it gets instantiated somewhere in this TU -- because users have to
> > find the location that triggers the template instantiation.
> >
> > Maybe
> > 1) Add a note which gives the instantiation location to the message, or
> > 2) ignore template case (some clang-tidy checks do this)
> In this particular case it seems to be useful to get warnings from template
> instantiations. But the message will indeed be confusing.
>
> Ideally, the message should have "in instantiation of xxx requested here"
> notes attached, as clang warnings do. But this is not working automatically,
> and it's implemented in Sema (`Sema::PrintInstantiationStack()` in
> lib/Sema/SemaTemplateInstantiate.cpp).
>
> I wonder whether it's feasible to produce similar notes after Sema is dead?
> Maybe not the whole instantiation stack, but at least it should be possible
> to figure out that the enclosing function is a template instantiation or is a
> member function of an type that is an instantiation of a template. That would
> be useful for other checks as well.
It should be possible to figure out, that the type comes from template
instantiation and that information could be added to the warning.
I will take a look at Sema and think about something like this. Unfortunatly i
dont have a lot of time :/
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D48714
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits