[all-commits] [llvm/llvm-project] 8f01ec: [flang] Special-case handling of INTRINSIC in type...

Peter Klausler via All-commits all-commits at lists.llvm.org
Tue Mar 26 09:50:59 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8f01ecaeb8e537511718c4df123fb92633d9f73d
      https://github.com/llvm/llvm-project/commit/8f01ecaeb8e537511718c4df123fb92633d9f73d
  Author: Peter Klausler <35819229+klausler at users.noreply.github.com>
  Date:   2024-03-26 (Tue, 26 Mar 2024)

  Changed paths:
    M flang/include/flang/Parser/tools.h
    M flang/lib/Parser/tools.cpp
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/init01.f90
    M flang/test/Semantics/resolve81.f90

  Log Message:
  -----------
  [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.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list