[flang] Add semantic check for named constant as function result

Similar to procedure argument, the function result cannot be one
named constant.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D126693
This commit is contained in:
Peixin-Qiao 2022-06-01 14:38:46 +08:00
parent 3d56131bf6
commit 5491fdf559
2 changed files with 12 additions and 0 deletions

View File

@ -351,6 +351,10 @@ void CheckHelper::Check(const Symbol &symbol) {
"A dummy argument may not have the SAVE attribute"_err_en_US);
}
} else if (IsFunctionResult(symbol)) {
if (IsNamedConstant(symbol)) {
messages_.Say(
"A function result may not also be a named constant"_err_en_US);
}
if (!symbol.test(Symbol::Flag::InDataStmt) /*caught elsewhere*/ &&
IsSaved(symbol)) {
messages_.Say(

View File

@ -0,0 +1,8 @@
! RUN: %python %S/test_errors.py %s %flang_fc1
! test named constant declarations
function f1() result(x)
!ERROR: A function result may not also be a named constant
integer, parameter :: x = 1
end