aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard@metafoo.co.uk>2020-02-07 16:34:08 -0800
committerRichard Smith <richard@metafoo.co.uk>2020-02-07 18:40:41 -0800
commit0e3a48778408b505946e465abf5c77a2ddd4918c (patch)
treed352c5ebcad342ddc8fdd67ec3f74a1f632711db /clang/lib/Frontend/CompilerInvocation.cpp
parent3e70a9196387437abb794b294d47fde37684337d (diff)
downloadllvm-0e3a48778408b505946e465abf5c77a2ddd4918c.zip
llvm-0e3a48778408b505946e465abf5c77a2ddd4918c.tar.gz
llvm-0e3a48778408b505946e465abf5c77a2ddd4918c.tar.bz2
PR12350: Handle remaining cases permitted by CWG DR 244.
Also add extension warnings for the cases that are disallowed by the current rules for destructor name lookup, refactor and simplify the lookup code, and improve the diagnostic quality when lookup fails. The special case we previously supported for converting p->N::S<int>::~S() from naming a class template into naming a specialization thereof is subsumed by a more general rule here (which is also consistent with Clang's historical behavior and that of other compilers): if we can't find a suitable S in N, also look in N::S<int>. The extension warnings are off by default, except for a warning when lookup for p->N::S::~T() looks for T in scope instead of in N (or N::S). That seems sufficiently heinous to warn on by default, especially since we can't support it for a dependent nested-name-specifier.
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions