Index: flang/lib/Semantics/resolve-names.cpp =================================================================== --- flang/lib/Semantics/resolve-names.cpp +++ flang/lib/Semantics/resolve-names.cpp @@ -1727,7 +1727,8 @@ HaveAttrConflict(attrName, Attr::PASS, Attr::NOPASS) || // C781 HaveAttrConflict(attrName, Attr::PURE, Attr::IMPURE) || HaveAttrConflict(attrName, Attr::PUBLIC, Attr::PRIVATE) || - HaveAttrConflict(attrName, Attr::RECURSIVE, Attr::NON_RECURSIVE); + HaveAttrConflict(attrName, Attr::RECURSIVE, Attr::NON_RECURSIVE) || + HaveAttrConflict(attrName, Attr::PARAMETER, Attr::BIND_C); } bool AttrsVisitor::CheckAndSet(Attr attrName) { CHECK(attrs_); Index: flang/test/Semantics/resolve114.f90 =================================================================== --- /dev/null +++ flang/test/Semantics/resolve114.f90 @@ -0,0 +1,12 @@ +! RUN: %python %S/test_errors.py %s %flang_fc1 + +! Check the conflict attributes + +module m + + !ERROR: Attributes 'PARAMETER' and 'BIND(C)' conflict with each other + integer, parameter, bind(c, name="a") :: x1 = 1 + !ERROR: Attributes 'PARAMETER' and 'BIND(C)' conflict with each other + integer, bind(c), parameter :: x2 = 1 + +end module m