aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Lower/Bridge.cpp
diff options
context:
space:
mode:
authorMuhammad Omair Javaid <omair.javaid@linaro.org>2023-11-23 12:29:35 +0500
committerMuhammad Omair Javaid <omair.javaid@linaro.org>2023-11-23 12:30:40 +0500
commit49f55d107548a340992eaec1b9767c0f8fc443cd (patch)
tree325f09856dd4d8d9e6f1d182e8e15b3fba3e2a9e /flang/lib/Lower/Bridge.cpp
parent7414c0db962f8a5029fd44c3e0bc93d9ce20be71 (diff)
downloadllvm-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.cpp29
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();