llvm-project/flang/test/Fir
Jean Perier 3ed899cc74 [flang] handle allocatable components when creating array temps
When creating an array temporary in the array copy pass, care must be
taken with allocatable components. The element components needs to be
given a clean unallocated status before being used in the assignments.
This is because assignment of allocatable components makes deep copy,
and may cause deallocation of the previous value if it was allocated.
Hence the previous allocation status cannot be let undefined.

On top of that, when cleaning-up the temp, all allocatable components
that may have been allocated must be deallocated.

This patch implements this by centralizing the code making and cleaning
array temps in ArrayValueCopy.cpp, and by calling Initialize and Destroy
runtime entry points when they are allocatable components.

Differential Revision: https://reviews.llvm.org/D121892
2022-03-17 10:56:20 +01:00
..
Todo [mlir] Move the Builtin FuncOp to the Func dialect 2022-03-16 17:07:03 -07:00
abstract-results.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
affine-demotion.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
affine-promotion.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
alloc.fir [flang] Upstream fix to allocmem codegen to deal with missing dimensions 2022-02-11 11:12:49 -08:00
annotate-constant.fir Write a pass to annotate constant operands on FIR ops. This works 2022-03-14 11:14:44 -07:00
array-value-copy-3.fir [flang] handle allocatable components when creating array temps 2022-03-17 10:56:20 +01:00
array-value-copy.fir [flang] Update ArrayValueCopy to support array_amend and array_access 2022-03-09 19:33:24 +01:00
basic-program.fir [flang] Add Win32 to the list of supported triples 2022-02-16 21:43:13 +00:00
cg-ops.fir [fir] Add substr information to fircg.ext_embox and fircg.ext_rebox operations 2021-11-03 10:15:10 +01:00
char-conversion.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
convert-fold.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
convert-to-llvm-invalid.fir [flang][codegen] Add a conversion for `fir.coordinate_of` - part 2 2021-12-17 10:34:57 +00:00
convert-to-llvm-target.fir [flang][CodeGen] Transform `fir.boxchar_len` to a sequence of LLVM MLIR 2021-11-16 13:49:23 +00:00
convert-to-llvm.fir [flang] Use unix logical representation for fir.logical 2022-03-09 09:42:07 +01:00
external-mangling-emboxproc.fir [fir] Add external name interop pass 2021-10-05 20:33:41 +02:00
external-mangling.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
fir-ops.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
fir-types.fir [Flang] Add the FIR LLVMPointer Type 2021-11-15 15:57:59 +00:00
ignore-missing-type-descriptor.fir [flang] Support PDT type descriptors in codegen 2022-03-03 10:08:18 +01:00
inline.fir [flang] Add FIRInlinerInterface 2022-02-10 11:38:34 +01:00
invalid-types.fir [flang][fir] Add FIR Types parser diagnostic tests + cleanup 2021-03-05 14:58:44 -05:00
invalid.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
loop01.fir [MLIR] Replace std ops with arith dialect ops 2021-10-13 03:07:03 +00:00
loop02.fir [mlir] Move SelectOp from Standard to Arithmetic 2022-02-02 14:45:12 -08:00
memory-allocation-opt.fir Add a new memory allocation rewrite pass. 2021-12-15 15:45:08 -08:00
memref-data-flow.fir [mlir] Split out a new ControlFlow dialect from Standard 2022-02-06 14:51:16 -08:00
rebox-susbtring.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
rebox.fir [flang] Relax fir.rebox verifier with characters 2022-03-16 16:08:52 +01:00
recursive-type.fir [Flang] Enable support for conversion of recursive record types 2022-01-04 13:53:58 +00:00
target-rewrite-boxchar.fir [fir] TargetRewrite: Rewrite fir.address_of(func) 2021-12-03 10:56:24 +00:00
target-rewrite-char-proc.fir [flang] split character procedure arguments in target-rewrite pass 2022-01-27 16:29:37 +01:00
target-rewrite-complex.fir [flang][codegen] Keep primitive type for extractvalue and insertvalue 2022-02-08 21:26:38 +01:00
target-rewrite-triple.fir [flang][driver] Add support for -S and implement -c/-emit-obj 2022-03-09 15:48:09 +00:00
types-to-llvm.fir [flang] Add type conversion for !fir.box<none> 2022-02-09 15:13:47 +01:00