diff options
author | Peter Klausler <35819229+klausler@users.noreply.github.com> | 2024-03-26 09:50:37 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-26 09:50:37 -0700 |
commit | 8f01ecaeb8e537511718c4df123fb92633d9f73d (patch) | |
tree | 2e062cfd259d1b9cd4113a30435eab2c64090f49 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | e75989e93063d1ac2626c3478c28ca364e04ef28 (diff) | |
download | llvm-8f01ecaeb8e537511718c4df123fb92633d9f73d.zip llvm-8f01ecaeb8e537511718c4df123fb92633d9f73d.tar.gz llvm-8f01ecaeb8e537511718c4df123fb92633d9f73d.tar.bz2 |
[flang] Special-case handling of INTRINSIC in type-decl-stmt (#86518)
Fortran allows the INTRINSIC attribute to be specified with a distinct
attribute statement, and also as part of the attribute list of a
type-declaration-stmt. This is an odd case (especially as the declared
type is mandated to be ignored if it doesn't match the type of the
intrinsic function) that can lead to odd error messages and crashes,
since the rest of name resolution expects that intrinsics with explicit
declarations will have been declared with INTRINSIC attribute
statements. Resolve by handling an "inline" INTRINSIC attribute as a
special case while processing a type-declaration-stmt, so that
real, intrinsic :: acos, asin, atan
is processed exactly as if it had been
intrinsic acos, asin, atan; real acos, asin, atan
Fixes https://github.com/llvm/llvm-project/issues/86382.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions