diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -3461,6 +3461,7 @@ TypeCategory::Character, *intKind)) { // C715, C719 Say(currStmtSource().value(), "KIND value (%jd) not valid for CHARACTER"_err_en_US, *intKind); + charInfo_.kind = std::nullopt; // prevent further errors } if (x.length) { charInfo_.length = GetParamValue(*x.length, common::TypeParamAttr::Len); diff --git a/flang/test/Semantics/kinds02.f90 b/flang/test/Semantics/kinds02.f90 --- a/flang/test/Semantics/kinds02.f90 +++ b/flang/test/Semantics/kinds02.f90 @@ -83,3 +83,9 @@ !ERROR: CHARACTER(KIND=8) is not a supported type character(len=*), parameter :: cvar11 = 8_"abcd" end program + +subroutine s(a, b) + character(*,2) :: a + !ERROR: KIND value (8) not valid for CHARACTER + character(*,8) :: b +end