File tree Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Expand file tree Collapse file tree 2 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -228,6 +228,8 @@ struct TypeBuilder {
228
228
// links, the fir type is built based on the ultimate symbol. This relies
229
229
// on the fact volatile and asynchronous are not reflected in fir types.
230
230
const Fortran::semantics::Symbol &ultimate = symbol.GetUltimate ();
231
+ if (Fortran::semantics::IsProcedurePointer (ultimate))
232
+ TODO (loc, " procedure pointers" );
231
233
if (const Fortran::semantics::DeclTypeSpec *type = ultimate.GetType ()) {
232
234
if (const Fortran::semantics::IntrinsicTypeSpec *tySpec =
233
235
type->AsIntrinsic ()) {
Original file line number Diff line number Diff line change @@ -1405,7 +1405,7 @@ struct SymbolDependenceDepth {
1405
1405
LLVM_DEBUG (llvm::dbgs () << " analyze symbol: " << sym << ' \n ' );
1406
1406
if (!done.second )
1407
1407
return 0 ;
1408
- if (semantics::IsProcedure (sym)) {
1408
+ if (semantics::IsProcedure (sym) && ! semantics::IsProcedurePointer (sym) ) {
1409
1409
// TODO: add declaration?
1410
1410
return 0 ;
1411
1411
}
@@ -1426,15 +1426,14 @@ struct SymbolDependenceDepth {
1426
1426
1427
1427
// Symbol must be something lowering will have to allocate.
1428
1428
int depth = 0 ;
1429
- const semantics::DeclTypeSpec *symTy = sym.GetType ();
1430
- assert (symTy && " symbol must have a type" );
1431
-
1432
1429
// Analyze symbols appearing in object entity specification expression. This
1433
1430
// ensures these symbols will be instantiated before the current one.
1434
1431
// This is not done for object entities that are host associated because
1435
1432
// they must be instantiated from the value of the host symbols (the
1436
1433
// specification expressions should not be re-evaluated).
1437
1434
if (const auto *details = sym.detailsIf <semantics::ObjectEntityDetails>()) {
1435
+ const semantics::DeclTypeSpec *symTy = sym.GetType ();
1436
+ assert (symTy && " symbol must have a type" );
1438
1437
// check CHARACTER's length
1439
1438
if (symTy->category () == semantics::DeclTypeSpec::Character)
1440
1439
if (auto e = symTy->characterTypeSpec ().length ().GetExplicit ())
You can’t perform that action at this time.
0 commit comments