From: Peixin-Qiao Date: Wed, 1 Jun 2022 06:38:46 +0000 (+0800) Subject: [flang] Add semantic check for named constant as function result X-Git-Tag: upstream/15.0.7~6242 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5491fdf559ec68039a218bab6bf41901611554f0;p=platform%2Fupstream%2Fllvm.git [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 --- diff --git a/flang/lib/Semantics/check-declarations.cpp b/flang/lib/Semantics/check-declarations.cpp index 6b55954..805d890 100644 --- a/flang/lib/Semantics/check-declarations.cpp +++ b/flang/lib/Semantics/check-declarations.cpp @@ -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( diff --git a/flang/test/Semantics/declarations01.f90 b/flang/test/Semantics/declarations01.f90 new file mode 100644 index 0000000..f3673a7 --- /dev/null +++ b/flang/test/Semantics/declarations01.f90 @@ -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 +