forked from OSchip/llvm-project
[flang] Address editorial comments and use oxford comma
Original-commit: flang-compiler/f18@88a8d1be03 Reviewed-on: https://github.com/flang-compiler/f18/pull/749 Tree-same-pre-rewrite: false
This commit is contained in:
parent
d8fc41f612
commit
9a01a4915e
|
@ -94,13 +94,13 @@ Extensions, deletions, and legacy features supported by default
|
|||
we allow distinct types to be used, promoting
|
||||
the arguments as if they were operands to an intrinsic `+` operator,
|
||||
and defining the result type accordingly.
|
||||
* DOUBLE COMPLEX intrinsics DREAL, DCMPLX, DCONJG and DIMAG.
|
||||
* DOUBLE COMPLEX intrinsics DREAL, DCMPLX, DCONJG, and DIMAG.
|
||||
* INT_PTR_KIND intrinsic returns the kind of c_intptr_t.
|
||||
* Restricted specific conversion intrinsics FLOAT, SNGL, IDINT, IFIX, DREAL,
|
||||
and DCMPLX accept arguments of any kind instead of only the default kind or
|
||||
double precision kind. Their result kinds remain as specified.
|
||||
* Specific intrinsics AMAX0, AMAX1, AMIN0, AMIN1, DMAX1, DMIN1, MAX0, MAX1,
|
||||
MIN0 and MIN1 accept more argument types than specified. They are replaced by
|
||||
MIN0, and MIN1 accept more argument types than specified. They are replaced by
|
||||
the related generics followed by conversions to the specified result types.
|
||||
|
||||
Extensions supported when enabled by options
|
||||
|
@ -152,7 +152,7 @@ Extensions and legacy features deliberately not supported
|
|||
component declarations.
|
||||
* Wrong argument types in calls to specific intrinsics that have different names than the
|
||||
related generics. Some accepted exceptions are listed above in the allowed extensions.
|
||||
PGI, Intel and XLF support this in ways that are not numerically equivalent.
|
||||
PGI, Intel, and XLF support this in ways that are not numerically equivalent.
|
||||
PGI converts the arguments while Intel and XLF replace the specific by the related generic.
|
||||
|
||||
Preprocessing behavior
|
||||
|
|
|
@ -715,8 +715,9 @@ static const IntrinsicInterface genericIntrinsicFunction[]{
|
|||
// in Table 16.2 can be used as actual arguments, PROCEDURE() interfaces,
|
||||
// and procedure pointer targets.
|
||||
// Note that the restricted conversion functions dcmplx, dreal, float, idint,
|
||||
// ifix and sngl are extended to accept any argument kind because this a common
|
||||
// Fortran compilers behavior.
|
||||
// ifix, and sngl are extended to accept any argument kind because this is a
|
||||
// common Fortran compilers behavior, and as far as we can tell, is safe and
|
||||
// useful.
|
||||
struct SpecificIntrinsicInterface : public IntrinsicInterface {
|
||||
const char *generic{nullptr};
|
||||
bool isRestrictedSpecific{false};
|
||||
|
@ -1685,7 +1686,7 @@ std::optional<SpecificCall> IntrinsicProcTable::Implementation::Probe(
|
|||
localContext.messages().Say(
|
||||
"Argument type does not match specific intrinsic '%s' "
|
||||
"requirements, using '%s' generic instead and converting the "
|
||||
"result to %s if needed."_en_US,
|
||||
"result to %s if needed"_en_US,
|
||||
name, genericName, newType.AsFortran());
|
||||
if (finalBuffer != nullptr) {
|
||||
finalBuffer->Annex(std::move(localBuffer));
|
||||
|
|
Loading…
Reference in New Issue