From c185aa7d925ea21a08951798bd3980e93d2caf35 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Fri, 27 Sep 2013 04:14:12 +0000 Subject: Sema: Respect -fdelayed-template-parsing when parsing constexpr functions Functions declared as constexpr must have their parsing delayed in -fdelayed-template-parsing mode so as not to upset later template instantiation. N.B. My reading of the standard makes it seem like delayed template parsing is at odds with constexpr. We may want to make refinements in other places in clang to make constexpr play nicer with this feature. This fixes PR17334. llvm-svn: 191484 --- clang/test/Parser/DelayedTemplateParsing.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'clang/test/Parser/DelayedTemplateParsing.cpp') diff --git a/clang/test/Parser/DelayedTemplateParsing.cpp b/clang/test/Parser/DelayedTemplateParsing.cpp index 3e429d41162..201fe1b466d 100644 --- a/clang/test/Parser/DelayedTemplateParsing.cpp +++ b/clang/test/Parser/DelayedTemplateParsing.cpp @@ -102,3 +102,15 @@ namespace rdar11700604 { }; } +namespace PR17334 { + +template struct ArrayRef { + constexpr ArrayRef() {} +}; +template void CreateConstInBoundsGEP2_32() { + ArrayRef<> IdxList; +} +void LLVMBuildStructGEP() { CreateConstInBoundsGEP2_32(); } + +} + -- cgit v1.2.3