From 229eee49fc2539f2aceac3073597e6029a3fb390 Mon Sep 17 00:00:00 2001 From: Reid Kleckner Date: Tue, 27 Nov 2018 21:20:42 +0000 Subject: [MS] Push outermost class DeclContexts only in -fdelayed-template-parsing This is more or less a complete rewrite of r347627, and it fixes PR38460 I added a reduced test case to DelayedTemplateParsing.cpp. llvm-svn: 347713 --- clang/test/Parser/DelayedTemplateParsing.cpp | 30 ++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'clang/test/Parser/DelayedTemplateParsing.cpp') diff --git a/clang/test/Parser/DelayedTemplateParsing.cpp b/clang/test/Parser/DelayedTemplateParsing.cpp index 6ea245c2d4e..c65e80b1f73 100644 --- a/clang/test/Parser/DelayedTemplateParsing.cpp +++ b/clang/test/Parser/DelayedTemplateParsing.cpp @@ -181,3 +181,33 @@ static void h() { } } + +struct PR38460 { + template + struct T { + static void foo() { + struct U { + void dummy() { + use_delayed_identifier(); + } + }; + } + }; +}; +void use_delayed_identifier(); +void trigger_PR38460() { + PR38460::T::foo(); +} + +template struct PR38460_2 { + struct p { + struct G { + bool operator()(int) {} + }; + }; + static void as() { + typename p::G g; + g(0); + } +}; +template struct PR38460_2; -- cgit v1.2.3