diff options
author | David Majnemer <david.majnemer@gmail.com> | 2013-09-27 04:14:12 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2013-09-27 04:14:12 +0000 |
commit | c185aa7d925ea21a08951798bd3980e93d2caf35 (patch) | |
tree | 7f4ac6adb3e7b566c0d24ff04842463cff0644f3 /clang/test/Parser/DelayedTemplateParsing.cpp | |
parent | 61f71c39033d6694937b675878220429f8b3968d (diff) | |
download | bcm5719-llvm-c185aa7d925ea21a08951798bd3980e93d2caf35.tar.gz bcm5719-llvm-c185aa7d925ea21a08951798bd3980e93d2caf35.zip |
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
Diffstat (limited to 'clang/test/Parser/DelayedTemplateParsing.cpp')
-rw-r--r-- | clang/test/Parser/DelayedTemplateParsing.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
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 <typename = void> struct ArrayRef { + constexpr ArrayRef() {} +}; +template <typename = void> void CreateConstInBoundsGEP2_32() { + ArrayRef<> IdxList; +} +void LLVMBuildStructGEP() { CreateConstInBoundsGEP2_32(); } + +} + |