[flang] Fix call to CHECK() on overriding an erroneous type-bound procedure
You can define a base type with a type-bound procedure which is erroneously missing a NOPASS attribute and then define another type that extends the base type and overrides the erroneous procedure. In this case, when we perform semantic checking on the overriding procedure, we verify the "pass index" of the overriding procedure. The attempt to get the procedure's pass index fails a call to CHECK(). I fixed this by calling SetError() on the symbol of the overridden procedure in the base type. Then, I check HasError() before executing the code that invokes the failing call to CHECK(). I also added a test that will cause the compiler to fail the call to CHECK() without this change. Differential Revision: https://reviews.llvm.org/D98355
Loading
Please register or sign in to comment