diff options
author | Peter Klausler <pklausler@nvidia.com> | 2025-07-25 14:48:01 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-25 14:48:01 -0700 |
commit | 129db4dc3e53abd0021dc443d68fdadb1d8dd27d (patch) | |
tree | 0acc89e6090831f6172583bafd14ba5424c64dbf /flang/lib | |
parent | f6a6cdd15c72fbf33f8cd7beac98910bef87e3dc (diff) | |
download | llvm-129db4dc3e53abd0021dc443d68fdadb1d8dd27d.zip llvm-129db4dc3e53abd0021dc443d68fdadb1d8dd27d.tar.gz llvm-129db4dc3e53abd0021dc443d68fdadb1d8dd27d.tar.bz2 |
[flang] Catch both EXTERNAL and INTRINSIC on type declaration stmt (#150254)
The EXTERNAL and INTRINSIC attributes can't both appear on the same type
declarations statement.
Fixes https://github.com/llvm/llvm-project/issues/149771.
Diffstat (limited to 'flang/lib')
-rw-r--r-- | flang/lib/Semantics/resolve-names.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp index b326860..d08c669 100644 --- a/flang/lib/Semantics/resolve-names.cpp +++ b/flang/lib/Semantics/resolve-names.cpp @@ -2351,7 +2351,8 @@ bool AttrsVisitor::IsConflictingAttr(Attr attrName) { 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::INTRINSIC, Attr::EXTERNAL); } bool AttrsVisitor::CheckAndSet(Attr attrName) { if (IsConflictingAttr(attrName) || IsDuplicateAttr(attrName)) { |