aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Semantics/assignment.h
AgeCommit message (Collapse)AuthorFilesLines
2025-07-08[flang][cuda] Do not produce data transfer in offloaded do concurrent (#147435)users/david-salinas/fix_offload_compressionValentin Clement (バレンタイン クレメン)1-8/+0
If a `do concurrent` loop is offloaded then there should be no CUDA data transfer in it. Update the semantic and lowering to take that into account. `AssignmentChecker` has to be put into a separate pass because the checkers in `SemanticsVisitor` cannot have the same `Enter/Leave` functions. The `DoForallChecker` already has `Eneter/Leave` functions for the `DoConstruct`.
2025-06-09[flang][openmp]Add UserReductionDetails and use in DECLARE REDUCTION (#140066)Tom Eccles1-0/+3
This adds another puzzle piece for the support of OpenMP DECLARE REDUCTION functionality. This adds support for operators with derived types, as well as declaring multiple different types with the same name or operator. A new detail class for UserReductionDetials is introduced to hold the list of types supported for a given reduction declaration. Tests for parsing and symbol generation added. Declare reduction is still not supported to lowering, it will generate a "Not yet implemented" fatal error. Fixes #141306 Fixes #97241 Fixes #92832 Fixes #66453 --------- Co-authored-by: Mats Petersson <mats.petersson@arm.com>
2025-02-04[flang][cuda] Relax semanctic check in cuf kernel and openacc compute ↵Valentin Clement (バレンタイン クレメン)1-0/+8
constructs (#125750) Previous patch was too restrictive and didn't take into account cuf kernels and openacc compute constructs as being device context.
2022-10-31[flang] Fix pointer definition semantic checking via refactoringPeter Klausler1-3/+0
The infrastructure in semantics that is used to check that the left-hand sides of normal assignment statements are really definable variables was not being used to check whether the LHSs of pointer assignments are modifiable, and so most cases of unmodifiable pointers are left undiagnosed. Rework the semantics checking for pointer assignments, NULLIFY statements, pointer dummy arguments, &c. so that cases of unmodifiable pointers are properly caught. This has been done by extracting all the various definability checking code that has been implemented for different contexts in Fortran into one new facility. The new consolidated definability checking code returns messages meant to be attached as "because: " explanations to context-dependent errors like "left-hand side of assignment is not definable". These new error message texts and their attached explanations affect many existing tests, which have been updated. The testing infrastructure was extended by another patch to properly compare warnings and explanatory messages, which had been ignored until recently. Differential Revision: https://reviews.llvm.org/D136979
2020-03-28[flang] Reformat with latest clang-format and .clang-formatTim Keith1-3/+3
Original-commit: flang-compiler/f18@9fe84f45d7fd685051004678d6b5775dcc4c6f8f Reviewed-on: https://github.com/flang-compiler/f18/pull/1094
2020-03-09[flang] Change CheckDefinabilityInPureScope to return boolTim Keith1-2/+2
Have CheckDefinabilityInPureScope and CheckCopyabilityInPureScope return false when their checks fail and report errors so that we will be able to avoid reporting extra errors in those cases. Original-commit: flang-compiler/f18@305a3470e572161483b0f430514b77ba19f932ea Reviewed-on: https://github.com/flang-compiler/f18/pull/1050 Tree-same-pre-rewrite: false
2020-02-25[flang] [LLVMify F18] Compiler module folders should have capitalised names ↵CarolineConcatto1-0/+60
(flang-compiler/f18#980) This patch renames the modules in f18 to use a capital letter in the module name Signed-off-by: Caroline Concatto <caroline.concatto@arm.com> Original-commit: flang-compiler/f18@d2eb7a1c443d1539ef12b6f027074a0eb15b1ea0 Reviewed-on: https://github.com/flang-compiler/f18/pull/980