Skip to content

Commit ac07dcf

Browse files
Fixed passing complex numbers.
Signed-off-by: Dominik Adamski <[email protected]>
1 parent 1cb7962 commit ac07dcf

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

tools/flang2/flang2exe/outliner.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2671,6 +2671,17 @@ ompaccel_copy_arraydescriptors(SPTR arg_sptr)
26712671
return device_symbol;
26722672
}
26732673

2674+
static bool is_complex_type(DTYPE dt)
2675+
{
2676+
if (dt == DT_DCMPLX){
2677+
return true;
2678+
}
2679+
else if (dt == DT_CMPLX){
2680+
return true;
2681+
}
2682+
return false;
2683+
}
2684+
26742685
SPTR
26752686
ll_make_helper_function_for_kmpc_parallel_51(SPTR scope_sptr, OMPACCEL_TINFO *orig_tinfo)
26762687
{
@@ -2688,13 +2699,15 @@ ll_make_helper_function_for_kmpc_parallel_51(SPTR scope_sptr, OMPACCEL_TINFO *or
26882699

26892700
for (int k = 2; k < func_args_cnt; k++) {
26902701
if(DT_ISSCALAR( DTYPEG(symbols->device_sym))
2691-
&& DTYPEG(symbols->device_sym) != DT_CMPLX)
2702+
&& !is_complex_type(DTYPEG(symbols->device_sym))) {
26922703
func_args[k] = DT_CPTR;
2704+
}
26932705
else if (STYPEG(symbols->host_sym) == ST_STRUCT) {
26942706
func_args[k] = DT_CPTR;
26952707
}
2696-
else
2708+
else {
26972709
func_args[k] = DTYPEG(symbols->device_sym);
2710+
}
26982711
PASSBYVALP(symbols->device_sym, false);
26992712
symbols++;
27002713
}

0 commit comments

Comments
 (0)