Don't mark lambda non-dependent if nested in a generic lambda. (#149121)
Fixes #118187
Fixes #156579
An instantiated `LambdaExpr` can currently be marked as
`LDK_NeverDependent` if it's nested within a generic lambda. If that
`LambdaExpr` in fact depends on template parameters introduced by the
enclosing generic lambda, then its dependence will be misreported as
"never dependent" and spurious diagnostics can result.
The fix here proposed is a bit ugly, but the condition that it's being
bolted onto already seems like a bit of a hack, so this seems no worse
for wear.
Note that #89702 surfaced this change because it caused the inner lambda
expression to (correctly) be considered in a constant-evaluated context.
The affected check for whether to mark the inner lambda as
`LDK_NeverDependent` therefore started to apply, whereas it didn't
[2 lines not shown]
[RegAlloc] Fix the terminal rule check for interfere with DstReg (#168661)
This maybe a bug which is introduced by commit
6749ae36b4a33769e7a77cf812d7cd0a908ae3b9, and has been present ever
since.
In this case, `OtherReg` always overlaps with `DstReg` cause they from
the `Copy` all.
(math/p5-PDL) Updated 2.024 to 2.100
2.100 2025-03-27
- fix Math function prototypes for GCC 15 (#528) - thanks @jplesnik for report
- Basic::rvals to allow Centre as ndarray (#532) - thanks @wlmb
- now an error to qsort{,vec} complex data
- {and,or}over output type now same as input type (#533)
- add Ufunc::{b,}xorover (#533) - thanks @jo-37
- fix Math::polyroots crashing on [2 1 0 1] (#536) - thanks @pipatron for report
- fix Slices::indexND with an empty used as an lvalue (#535) - thanks @yelnats for report
- many fixes and improvements to the auto-generated POD docs (#534) - thanks @jo-37
2.099 2025-01-23
- fix test that assumed acosh(0)->byte, i.e. nan()->byte, was always 0 (#514) - thanks @eserte for report
- separate PDL::Type POD documentation
- partly restoring pre-2.096 xform type-selection: if xform given no typed outputs, and non-available (greater than last-given type) typed inputs, use last-given (#511, https://github.com/moocow-the-bovine/PDL-CCS/issues/18)
- fix Math::polyroots with native-complex input and supplied null output
- add Pars type-spec "!real" which makes it an error to supply real values (#511)
- now an error to call Ops::carg on a real value, or Ops::czip on complex inputs (#511)
[813 lines not shown]
[TableGen] Use MVT instead of MVT::SimpleValueType. NFC (#169180)
This improves type safety and is less verbose. Use SimpleTy only where
an integer is needed like switches or emitting a VBR.
---------
Co-authored-by: Sergei Barannikov <barannikov88 at gmail.com>
Add a detach call to the CFATTACH_ define mostly so that the children
so the right thing. This isn't very useful right now, but will become
more useful with a driver that will be landing in the near future.
nfs_commonsubs.c: Get rid of variable used as a constant
The variable ncl_mbuf_mhlen is set to MHLEN and only
used in one place. This patch simply deletes it and
replaces it with MHLEN.
This patch should not affect semantics.
Spotted while fixing cases that could do large
NFSM_DISSECT() sizes.
(cherry picked from commit 73551cd6eac29a6707c802c7d7fafcb560bf5e2b)
nfs_commonsubs.c: Get rid of variable used as a constant
The variable ncl_mbuf_mhlen is set to MHLEN and only
used in one place. This patch simply deletes it and
replaces it with MHLEN.
This patch should not affect semantics.
Spotted while fixing cases that could do large
NFSM_DISSECT() sizes.
(cherry picked from commit 73551cd6eac29a6707c802c7d7fafcb560bf5e2b)
[llvm] Use llvm::equal (NFC) (#169173)
While I am at it, this patch uses const l-value references for
std::shared_ptr. We don't need to increment the reference count by
passing std::shared_ptr by value.
Identified with llvm-use-ranges.
[flang][OpenMP] Canonicalize loops with intervening OpenMP constructs (#169191)
Example based on the gfortran test a.6.1.f90
```
do 100 i = 1,10
!$omp do
do 100 j = 1,10
call work(i,j)
100 continue
```
During canonicalization of label-DO loops, if the body of an OpenMP
construct ends with a label, treat the label as ending the construct
itself.
This will also allow handling of cases like
```
do 100 i = 1, 10
!$omp atomic write
[2 lines not shown]