aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Parser/prescan.h
diff options
context:
space:
mode:
Diffstat (limited to 'flang/lib/Parser/prescan.h')
-rw-r--r--flang/lib/Parser/prescan.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/flang/lib/Parser/prescan.h b/flang/lib/Parser/prescan.h
index fc38adb..5e74817 100644
--- a/flang/lib/Parser/prescan.h
+++ b/flang/lib/Parser/prescan.h
@@ -171,7 +171,17 @@ private:
bool InOpenMPConditionalLine() const {
return directiveSentinel_ && directiveSentinel_[0] == '$' &&
!directiveSentinel_[1];
- ;
+ }
+ bool InOpenACCOrCUDAConditionalLine() const {
+ return directiveSentinel_ && directiveSentinel_[0] == '@' &&
+ ((directiveSentinel_[1] == 'a' && directiveSentinel_[2] == 'c' &&
+ directiveSentinel_[3] == 'c') ||
+ (directiveSentinel_[1] == 'c' && directiveSentinel_[2] == 'u' &&
+ directiveSentinel_[3] == 'f')) &&
+ directiveSentinel_[4] == '\0';
+ }
+ bool InConditionalLine() const {
+ return InOpenMPConditionalLine() || InOpenACCOrCUDAConditionalLine();
}
bool InFixedFormSource() const {
return inFixedForm_ && !inPreprocessorDirective_ && !InCompilerDirective();