File tree Expand file tree Collapse file tree 3 files changed +9
-7
lines changed Expand file tree Collapse file tree 3 files changed +9
-7
lines changed Original file line number Diff line number Diff line change @@ -714,9 +714,9 @@ RUN(NAME symbolics_07 LABELS cpython_sym c_sym llvm_sym NOFAST)
714
714
RUN (NAME symbolics_08 LABELS cpython_sym c_sym llvm_sym )
715
715
RUN (NAME symbolics_09 LABELS cpython_sym c_sym llvm_sym NOFAST )
716
716
RUN (NAME symbolics_10 LABELS cpython_sym c_sym llvm_sym NOFAST )
717
- RUN (NAME symbolics_11 LABELS cpython_sym c_sym NOFAST )
717
+ RUN (NAME symbolics_11 LABELS cpython_sym c_sym llvm_sym NOFAST )
718
718
RUN (NAME symbolics_12 LABELS cpython_sym c_sym llvm_sym NOFAST )
719
- RUN (NAME symbolics_13 LABELS cpython_sym c_sym NOFAST )
719
+ RUN (NAME symbolics_13 LABELS cpython_sym c_sym llvm_sym NOFAST )
720
720
721
721
RUN (NAME sizeof_01 LABELS llvm c
722
722
EXTRAFILES sizeof_01b.c )
Original file line number Diff line number Diff line change @@ -7766,9 +7766,9 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
7766
7766
if (llvm_symtab.find (h) != llvm_symtab.end ()) {
7767
7767
tmp = llvm_symtab[h];
7768
7768
if ( !ASRUtils::is_array (arg->m_type ) ) {
7769
-
7770
7769
if (x_abi == ASR::abiType::Source && ASR::is_a<ASR::CPtr_t>(*arg->m_type )) {
7771
- if (arg->m_intent == intent_local) {
7770
+ if ( orig_arg_intent != ASRUtils::intent_out &&
7771
+ arg->m_intent == intent_local ) {
7772
7772
// Local variable of type
7773
7773
// CPtr is a void**, so we
7774
7774
// have to load it
@@ -7815,9 +7815,10 @@ class ASRToLLVMVisitor : public ASR::BaseVisitor<ASRToLLVMVisitor>
7815
7815
}
7816
7816
}
7817
7817
} else if (is_a<ASR::CPtr_t>(*arg_type)) {
7818
- if (arg->m_intent == intent_local) {
7819
- // Local variable of type
7820
- // CPtr is a void**, so we
7818
+ if ( arg->m_intent == intent_local ||
7819
+ arg->m_intent == ASRUtils::intent_out) {
7820
+ // Local variable or Dummy out argument
7821
+ // of type CPtr is a void**, so we
7821
7822
// have to load it
7822
7823
tmp = CreateLoad (tmp);
7823
7824
}
Original file line number Diff line number Diff line change @@ -1267,6 +1267,7 @@ namespace LCompilers {
1267
1267
break ;
1268
1268
}
1269
1269
case (ASR::ttypeType::CPtr) : {
1270
+ a_kind = 8 ;
1270
1271
llvm_type = llvm::Type::getVoidTy (context)->getPointerTo ();
1271
1272
break ;
1272
1273
}
You can’t perform that action at this time.
0 commit comments