Skip to content

Commit fde5e47

Browse files
authored
[flang] C_LOC is PURE (#89437)
The standard defines C_LOC as being PURE (actually SIMPLE now in F'2023); characterize it appropriately. Fixes #88747.
1 parent 2f77757 commit fde5e47

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

flang/lib/Evaluate/intrinsics.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -2862,7 +2862,8 @@ std::optional<SpecificCall> IntrinsicProcTable::Implementation::HandleC_Loc(
28622862
characteristics::DummyArgument{"x"s,
28632863
characteristics::DummyDataObject{
28642864
std::move(*typeAndShape)}}},
2865-
characteristics::Procedure::Attrs{}}},
2865+
characteristics::Procedure::Attrs{
2866+
characteristics::Procedure::Attr::Pure}}},
28662867
std::move(arguments)};
28672868
}
28682869
}

flang/module/__fortran_builtins.f90

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
private
1919

2020
intrinsic :: __builtin_c_loc
21+
public :: __builtin_c_loc
2122

2223
intrinsic :: __builtin_c_f_pointer
2324
public :: __builtin_c_f_pointer
@@ -56,8 +57,6 @@
5657
integer, parameter, public :: &
5758
__builtin_atomic_logical_kind = __builtin_atomic_int_kind
5859

59-
procedure(type(__builtin_c_ptr)), public :: __builtin_c_loc
60-
6160
type, public :: __builtin_dim3
6261
integer :: x=1, y=1, z=1
6362
end type

0 commit comments

Comments
 (0)