diff options
author | flywind <43030857+xflywind@users.noreply.github.com> | 2021-01-04 04:34:13 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-04 11:34:13 +0100 |
commit | acf3715ea808d6ca5cfd94a340205d588fd50969 (patch) | |
tree | 1498836f66f1da59b30869390479e06f1ca41b61 /compiler | |
parent | 435f829348e12642540277ebeebe88fa6f289f80 (diff) | |
download | Nim-acf3715ea808d6ca5cfd94a340205d588fd50969.tar.gz |
continue #15456 add #pragma directives compiler support (#16472)
* continue #15456 * follow the advice from juan_carlos
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ccgstmts.nim | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/compiler/ccgstmts.nim b/compiler/ccgstmts.nim index 367e693e9..8c419caac 100644 --- a/compiler/ccgstmts.nim +++ b/compiler/ccgstmts.nim @@ -653,12 +653,19 @@ proc genParForStmt(p: BProc, t: PNode) = initLocExpr(p, call[2], rangeB) # $n at the beginning because of #9710 - if call.len == 4: # `||`(a, b, annotation) - lineF(p, cpsStmts, "$n#pragma omp $4$n" & - "for ($1 = $2; $1 <= $3; ++$1)", - [forLoopVar.loc.rdLoc, - rangeA.rdLoc, rangeB.rdLoc, - call[3].getStr.rope]) + if call.len == 4: # procName(a, b, annotation) + if call[0].sym.name.s == "||": # `||`(a, b, annotation) + lineF(p, cpsStmts, "$n#pragma omp $4$n" & + "for ($1 = $2; $1 <= $3; ++$1)", + [forLoopVar.loc.rdLoc, + rangeA.rdLoc, rangeB.rdLoc, + call[3].getStr.rope]) + else: + lineF(p, cpsStmts, "$n#pragma $4$n" & + "for ($1 = $2; $1 <= $3; ++$1)", + [forLoopVar.loc.rdLoc, + rangeA.rdLoc, rangeB.rdLoc, + call[3].getStr.rope]) else: # `||`(a, b, step, annotation) var step: TLoc initLocExpr(p, call[3], step) |