- Mar 28, 2023
-
-
Peter Klausler authored
Presently, semantics doesn't check for discrepancies between known constant corresponding LEN type parameters between the declared type of an allocatable/pointer and either the type-spec or the SOURCE=/MOLD= on an ALLOCATE statement. This allows discrepancies between character lengths to go unchecked. Some compilers accept mismatched character lengths on SOURCE=/MOLD= and the allocate object, and that's useful and unambiguous feature that already works in f18 via truncation or padding. A portability warning should issue, however. But for mismatched character lengths between an allocate object and an explicit type-spec, and for any mismatch between derived type LEN type parameters, an error is appropriate. Differential Revision: https://reviews.llvm.org/D146583
-
Peiming Liu authored
To address post-submit comments in https://reviews.llvm.org/D147010. Reviewed By: wrengr Differential Revision: https://reviews.llvm.org/D147014
-
Jonas Devlieghere authored
Add the ability to generate universal binaries with a fat64 header. rdar://107223939 Differential revision: https://reviews.llvm.org/D146879
-
Peter Klausler authored
Consolidate aspects of pointer assignment & structure constructor pointer component checking from Semantics/assignment.cpp and /expression.cpp into /pointer-assignment.cpp, and add a warning about data targets that are not definable objects but not hard errors. Specifically, a structure component pointer component data target is not allowed to be a USE-associated object in a pure context by a numbered constraint, but the right-hand side data target of a pointer assignment statement has no such constraint, and that's the new warning. Differential Revision: https://reviews.llvm.org/D146581
-
Peiming Liu authored
[mlir][sparse] add create-sparse-deallocs options to match the create-deallocs in BufferizationOption. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D147010
-
Peter Klausler authored
The data statement variable checker is missing some cases, like expressions that are not variables. Run the checker first to enjoy its very specific error messages, but when it finds no problems, still apply a general check that an expression is a "variable" and also not a constant expression at the top level as a backstop. Differential Revision: https://reviews.llvm.org/D146580
-
Jakob Leifhelm authored
The LLVMOrcObjectLayerAddObjectFileWithRT method does not have an implementation. LLVMOrcLLJITAddObjectFileWithRT exists twice (maybe a copy paste error). Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D118447
-
Joseph Huber authored
We can now target the NVPTX architecture directly via `--target=nvptx64-nvidia-cuda`. This currently does not define the `__CUDA_ARCH__` macro with is used to allow code to target different codes based on support. This patch simply adds this support. Reviewed By: tra, jdoerfert Differential Revision: https://reviews.llvm.org/D146975
-
Jorge Gorbe Moya authored
If we have a `%typemap(freearg)` that frees the argument, we shouldn't free it manually on an error path before calling `SWIG_fail`. `SWIG_fail` will already free the memory in this case, and doing it manually results in a double free. Differential Revision: https://reviews.llvm.org/D147007
-
Hongtao Yu authored
-
Peter Klausler authored
Constraint checking for explicit SAVE attributes is more accurate when done along with other declaration checking, rather than on the fly during name resolution. This allows us to catch attempts to attach explicit SAVE attributes to anything that can't have one (constraints C859, C860). Also delete `IsSave()`, whose few remaining uses were changed to the more general `IsSaved()` predicate that seems more correct for those uses, returning true for both explicit and implied SAVE attributes. Differential Revision: https://reviews.llvm.org/D146579
-
Peter Klausler authored
A PRIVATE procedure binding in a derived type extension may not be an override of a PUBLIC procedure binding. Declaration checking for this case was working only in the presence of an explicit PUBLIC accessibility attribute, when it should be checking for the absence of a PRIVATE accessibility attribute. Differential Revision: https://reviews.llvm.org/D146577
-
Peter Klausler authored
Constraint C1406 in Fortran 2018 prohibits the USE of the same module name as both an intrinsic module and a non-intrinsic module in a scope. The current check misinterprets the constraint as applying only to explicitly INTRINSIC or NON_INTRINSIC module natures. Change the check to also apply to non-explicit module natures, and also downgrade it to a portability warning, since there is no ambiguity and I suspect that we need to accept this usage when building f18's own intrinsic modules. Differential Revision: https://reviews.llvm.org/D146576
-
Mikhail R. Gadelha authored
This implements the fake return after a successful longjmp(), as described in the linux man page: Following a successful longjmp(), execution continues as if setjmp() had returned for a second time. This "fake" return can be distin- guished from a true setjmp() call because the "fake" return returns the value provided in val. If the programmer mistakenly passes the value 0 in val, the "fake" return will instead return 1. Reviewed By: sivachandra Differential Revision: https://reviews.llvm.org/D146981
-
Alexander Yermolovich authored
GDB 11.2 generates V8 version of gdb-index where it de-duplicates entries in constant pool based on cu indices. Changed how constant pool entries are counted to account for this. Differential Revision: https://reviews.llvm.org/D146852
-
Peter Klausler authored
A positional (non-keyword) actual argument or alternate return label is not allowed to follow an actual argument with a keyword. Differential Revision: https://reviews.llvm.org/D146575
-
Peter Klausler authored
When multiple scopes in a compilation define interfaces (explicit or implicit) for an external procedure, warn when those interfaces are inconsistent. Differential Revision: https://reviews.llvm.org/D146574
-
Peter Klausler authored
Complain about the ASYNCHRONOUS attribute on symbols that aren't variables. Differential Revision: https://reviews.llvm.org/D146573
-
Maya Amrami authored
Reviewed By: eric-k256 Differential Revision: https://reviews.llvm.org/D146901
-
Peter Klausler authored
Procedures with the EXTERNAL attribute (explicit or implied) are not permitted to be ALLOCATABLE or be arrays if their interfaces are implicit. Differential Revision: https://reviews.llvm.org/D146572
-
- Mar 27, 2023
-
-
Robert Suderman authored
Polynomial approximations assume F32 values. We can convert all non-f32 cases to operate on f32s with intermediate casts. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D146677
-
Lang Hames authored
-
Peter Klausler authored
The present I/O infrastructure for user-defined derived type I/O subroutines works fine for type-bound I/O generic bindings. It also works for explicit INTERFACE blocks and GENERIC statements that define UDDIO subroutines in the same scope as the definition of the derived type, so long as the specific procedures in those bindings are module procedures or external procedures. For non-type-bound UDDTIO specific procedures that are dummy procedures, thunks of inner procedures, or procedure pointers, or that are defined with interfaces or GENERIC outside the scope of the definition of the derived type, a new runtime I/O API is needed so that lowering can generate a call that supplies the appropriate procedure as well as the defined type instance. This patch specifies and implements this new runtime API and provides utility routines for lowering to use to determine whether it should be called for any particular OutputItem or InputItem in the parse tree. Differential Revision: https://reviews.llvm.org/D146571
-
Chittireddy, Sindhu authored
Coverity static analysis tool found PolicyBitMask being used uninitialized in push_back call in RVVEmitter::createRVVIntrinsics() but this variable has no uses. Differential revision: https://reviews.llvm.org/D146847
-
LLVM GN Syncbot authored
-
-
Owen Pan authored
Related to a02c3af9. Fixes #61700. Differential Revision: https://reviews.llvm.org/D146895
-
Min-Yih Hsu authored
Of my contact email. Sorry for the churn.
-
Min-Yih Hsu authored
As well as updating .mailmap
-
Craig Topper authored
There are only two cases here. Using an assert ensures there is no handled third case. Also move comment to avoid odd formatting. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D146998
-
LLVM GN Syncbot authored
-
Alex Langford authored
This reverts commit ee232506. As discussed in https://reviews.llvm.org/D146668 we'll find another way forward.
-
Alex Langford authored
This reverts commit 0c5cee77. As discussed in https://reviews.llvm.org/D146668 we'll find another way forward.
-
Jez Ng authored
Specifically, we support this: ld64.lld -dylib foo.o libbar.dylib -exported_symbol _bar -o libfoo.dylib Where `_bar` is defined in libbar.dylib. Reviewed By: #lld-macho, smeenai Differential Revision: https://reviews.llvm.org/D144153
-
Alex Langford authored
As discussed in https://reviews.llvm.org/D146668 I will be reverting 0c5cee77 and ee232506. I'm removing NO_PLUGIN_DEPENDENCIES from lldbTarget first so that these reverts will not leave LLDB in a bad state afterwards.
-
Craig Topper authored
Even for experimental extensions, I think we always include "Std" in the feature name. Reviewed By: asb Differential Revision: https://reviews.llvm.org/D146997
-
Hussain Kadhem authored
Added semantics tests for aspects of CHANGE TEAM statements which are not duplicates from FORM TEAM statements. Reviewed By: ktras Differential Revision: https://reviews.llvm.org/D137908
-
Craig Topper authored
I think the failure was caused by a mistake in an earlier patch. Original commit message: We've supported .insn for non-compressed for a while. This finishes the compressed supported. Differential Revision: https://reviews.llvm.org/D146663
-
Min-Yih Hsu authored
Lowering i1 (inreg) sext with `(NEG (AND %val, 1))`.
-
Luke Lau authored
The gather scatter lowering pass can fold multiplies of a step vector into the stride for the recursive case, so this extends it for the non-recursive case. The logic can probably be shared between the two at some point to extend it to shls and ors. Reviewed By: reames Differential Revision: https://reviews.llvm.org/D146983
-