diff options
author | Muhammad Omair Javaid <omair.javaid@linaro.org> | 2023-11-23 12:29:35 +0500 |
---|---|---|
committer | Muhammad Omair Javaid <omair.javaid@linaro.org> | 2023-11-23 12:30:40 +0500 |
commit | 49f55d107548a340992eaec1b9767c0f8fc443cd (patch) | |
tree | 325f09856dd4d8d9e6f1d182e8e15b3fba3e2a9e /flang/lib/Lower/Bridge.cpp | |
parent | 7414c0db962f8a5029fd44c3e0bc93d9ce20be71 (diff) | |
download | llvm-49f55d107548a340992eaec1b9767c0f8fc443cd.zip llvm-49f55d107548a340992eaec1b9767c0f8fc443cd.tar.gz llvm-49f55d107548a340992eaec1b9767c0f8fc443cd.tar.bz2 |
Revert "[Flang] Add partial support for lowering procedure pointer assignment. (#70461)"
This reverts commit e07fec10ac208c2868a24c5c0be88e45778b297e.
This change appears to have broken following buildbots:
https://lab.llvm.org/buildbot/#/builders/176
https://lab.llvm.org/buildbot/#/builders/179
https://lab.llvm.org/buildbot/#/builders/184
https://lab.llvm.org/buildbot/#/builders/197
https://lab.llvm.org/buildbot/#/builders/198
All bots fails in testsuite where following tests seems broken:
(eg: https://lab.llvm.org/buildbot/#/builders/176/builds/7131)
test-suite::gfortran-regression-compile-regression__proc_ptr_46_f90.test
test-suite::gfortran-regression-compile-regression__proc_ptr_37_f90.test
Diffstat (limited to 'flang/lib/Lower/Bridge.cpp')
-rw-r--r-- | flang/lib/Lower/Bridge.cpp | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index 23c48cc..872bf6b 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -3095,17 +3095,6 @@ private: const Fortran::lower::SomeExpr *expr = Fortran::semantics::GetExpr(pointerObject); assert(expr); - if (Fortran::evaluate::IsProcedurePointer(*expr)) { - Fortran::lower::StatementContext stmtCtx; - hlfir::Entity pptr = Fortran::lower::convertExprToHLFIR( - loc, *this, *expr, localSymbols, stmtCtx); - auto boxTy{ - Fortran::lower::getUntypedBoxProcType(builder->getContext())}; - hlfir::Entity nullBoxProc( - fir::factory::createNullBoxProc(*builder, loc, boxTy)); - builder->createStoreWithConvert(loc, nullBoxProc, pptr); - return; - } fir::MutableBoxValue box = genExprMutableBox(loc, *expr); fir::factory::disassociateMutableBox(*builder, loc, box); } @@ -3252,24 +3241,8 @@ private: mlir::Location loc, const Fortran::evaluate::Assignment &assign, const Fortran::evaluate::Assignment::BoundsSpec &lbExprs) { Fortran::lower::StatementContext stmtCtx; - - if (!lowerToHighLevelFIR() && Fortran::evaluate::IsProcedure(assign.rhs)) + if (Fortran::evaluate::IsProcedure(assign.rhs)) TODO(loc, "procedure pointer assignment"); - if (Fortran::evaluate::IsProcedurePointer(assign.lhs)) { - hlfir::Entity lhs = Fortran::lower::convertExprToHLFIR( - loc, *this, assign.lhs, localSymbols, stmtCtx); - if (Fortran::evaluate::IsNullProcedurePointer(assign.rhs)) { - auto boxTy{Fortran::lower::getUntypedBoxProcType(&getMLIRContext())}; - hlfir::Entity rhs( - fir::factory::createNullBoxProc(*builder, loc, boxTy)); - builder->createStoreWithConvert(loc, rhs, lhs); - return; - } - hlfir::Entity rhs(getBase(Fortran::lower::convertExprToAddress( - loc, *this, assign.rhs, localSymbols, stmtCtx))); - builder->createStoreWithConvert(loc, rhs, lhs); - return; - } std::optional<Fortran::evaluate::DynamicType> lhsType = assign.lhs.GetType(); |