[lldb][AArch64] Fix typeo in AArch64 DoFixAddr highmem (#191952)
Code and Data masks are the same on AArch64, but someone could adopt a
Code mask that cleared the low 2 bits, so it's good to correct the
mistake.
rdar://174463000
[llvm-ar] Enable failed testacase on FreeBSD (#192612)
FreeBSD used to allow the read system call on directory file descriptors
(dirfd). In those cases, it returned the internal file data structure
instead of failing. This caused the llvm-ar test— which expects a
failure when attempting to read a directory— to pass incorrectly.
This behavior existed for compatibility with older Unix implementations,
but it was removed in commit dcef4f65ae3978c50eab745f67364db4660a9f43.
The change applies to FreeBSD 13 and later. Since FreeBSD 12 has also
reached end-of-life, the outdated behavior is no longer relevant.
As a result, the test now behaves as intended and can be safely
re-enabled.
[llvm-ar] Enable failed testacase on FreeBSD
FreeBSD used to allow the read system call on directory file descriptors
(dirfd). In those cases, it returned the internal file data structure
instead of failing. This caused the llvm-ar test— which expects a
failure when attempting to read a directory— to pass incorrectly.
This behavior existed for compatibility with older Unix implementations,
but it was removed in commit dcef4f65ae3978c50eab745f67364db4660a9f43.
The change applies to FreeBSD 13 and later. Since FreeBSD 12 has also
reached end-of-life, the outdated behavior is no longer relevant.
As a result, the test now behaves as intended and can be safely
re-enabled.
[clang] implement CWG2064: ignore value dependence for decltype
The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.
This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.
This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.
Fixes #8740
Fixes #61818
Fixes #190388
[SLP][NFC] Simplify range/type accessors
Use the range-friendly llvm::accumulate() overload instead of the
two-iterator std::accumulate() form, drop redundant cast<>/dyn_cast<>
calls where the source already provides a typed accessor.
Reviewers:
Pull Request: https://github.com/llvm/llvm-project/pull/192811
[VPlan] Fix isLatch to handle BranchOnTwoConds, check verifier.(NFC) (#192808)
Update `isLatch` to handle BranchOnTwoConds,
in preparation to enable running the verifier on earlier VPlans.
[clang] implement CWG2064: ignore value dependence for decltype
The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.
This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.
This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.
Fixes #8740
Fixes #61818
Fixes #190388
[VPlan] Allow same predecessor multiple times in the verifier. (NFC) (#192809)
IR instructions like switch lead to initial VPlans with blocks that have
the same predecessor multiple times. Allow it in the verifier.
[clang] fix profiling of pack index expressions
This replaces a few incorrect calls of VisitExpr on subcomponents,
which should have been plain `Visit` instead, because the former
just implements the commonality between all kind-specific profile
functions (marking the class kind and visiting children).
So this for example would visit a DeclRefExpr but not actually profile
any of it's properties, like the parameter declaration, so it would fail
to distinguish between DeclRefExps referencing distinct entities.
This also adds a call to record the PackIndexExpr's kind in the profile,
to avoid false positives when comparing expressions with different kinds.
[clang] fix a bug matching constrained out-of-line definitions of class member functions
The method which gathered the template arguments for transforming constraints
was incorrectly skipping adding the arguments for function templates which are
class members.
This fixes that, and removes an undocumented workaround for template alias CTAD.
Also adds a test case showing #139276 causes a profiling issue with PackIndexExprs,
which for the tests added in that PR gave the false impression they were fixing the
problem, but were actually causing the implementation to be too accepting, which
masked the bug solved in this patch.
[clang] fix a bug matching constrained out-of-line definitions of class member functions
The method which gathered the template arguments for transforming constraints
was incorrectly skipping adding the arguments for function templates which are
class members.
This fixes that, and removes an undocumented workaround for template alias CTAD.
Also adds a test case showing #139276 causes a profiling issue with PackIndexExprs,
which for the tests added in that PR gave the false impression they were fixing the
problem, but were actually causing the implementation to be too accepting, which
masked the bug solved in this patch.
[clang] fix a bug matching constrained out-of-line definitions of class member functions
The method which gathered the template arguments for transforming constraints
was incorrectly skipping adding the arguments for function templates which are
class members.
This fixes that, and removes an undocumented workaround for template alias CTAD.
Also adds a test case showing #139276 causes a profiling issue with PackIndexExprs,
which for the tests added in that PR gave the false impression they were fixing the
problem, but were actually causing the implementation to be too accepting, which
masked the bug solved in this patch.
[clang] fix a bug matching constrained out-of-line definitions of class member functions
The method which gathered the template arguments for transforming constraints
was incorrectly skipping adding the arguments for function templates which are
class members.
This fixes that, and removes an undocumented workaround for template alias CTAD.
Also adds a test case showing #139276 causes a profiling issue with PackIndexExprs,
which for the tests added in that PR gave the false impression they were fixing the
problem, but were actually causing the implementation to be too accepting, which
masked the bug solved in this patch.