mirror of
https://github.com/intel/llvm.git
synced 2026-01-16 05:32:28 +08:00
[flang][openacc] Suppport !@acc compiler sentinel (#161706)
This commit is contained in:
committed by
GitHub
parent
11faf88d8f
commit
6048c2f0c7
@@ -85,6 +85,7 @@ const SourceFile *Parsing::Prescan(const std::string &path, Options options) {
|
||||
if (options.features.IsEnabled(LanguageFeature::OpenACC) ||
|
||||
(options.prescanAndReformat && noneOfTheAbove)) {
|
||||
prescanner.AddCompilerDirectiveSentinel("$acc");
|
||||
prescanner.AddCompilerDirectiveSentinel("@acc");
|
||||
}
|
||||
if (options.features.IsEnabled(LanguageFeature::OpenMP) ||
|
||||
(options.prescanAndReformat && noneOfTheAbove)) {
|
||||
|
||||
@@ -147,6 +147,11 @@ void Prescanner::Statement() {
|
||||
directiveSentinel_[4] == '\0') {
|
||||
// CUDA conditional compilation line.
|
||||
condOffset = 5;
|
||||
} else if (directiveSentinel_[0] == '@' && directiveSentinel_[1] == 'a' &&
|
||||
directiveSentinel_[2] == 'c' && directiveSentinel_[3] == 'c' &&
|
||||
directiveSentinel_[4] == '\0') {
|
||||
// OpenACC conditional compilation line.
|
||||
condOffset = 5;
|
||||
}
|
||||
if (condOffset && !preprocessingOnly_) {
|
||||
at_ += *condOffset, column_ += *condOffset;
|
||||
|
||||
14
flang/test/Semantics/OpenACC/acc-sentinel.f90
Normal file
14
flang/test/Semantics/OpenACC/acc-sentinel.f90
Normal file
@@ -0,0 +1,14 @@
|
||||
! RUN: %python %S/../test_errors.py %s %flang_fc1 -fopenacc
|
||||
|
||||
subroutine test_sentinel()
|
||||
! Test for error since we currently do not have an OpenACC module upstream.
|
||||
!ERROR: Cannot parse module file for module 'openacc': Source file 'openacc.mod' was not found
|
||||
!@acc use openacc
|
||||
integer :: i
|
||||
|
||||
!$acc parallel loop
|
||||
do i = 1, 10
|
||||
end do
|
||||
!$acc end parallel
|
||||
|
||||
end subroutine
|
||||
Reference in New Issue
Block a user