[OpenMP][OMPT] Make omp_control_tool enums available in omp-tools.h (#216076)
OpenMP 6.1 will introduce this change: the enums must be available by
including either header file, but including both must also be valid.
[clang] Move DefaultedFunctionKind from Sema to AST (#214846)
I plan on using this to implement DW_AT_defaulted in CGDebugInfo.
Putting this on FunctionDecl itself seems like a better move than
reaching into Sema from CGDebugInfo.
See: https://github.com/llvm/llvm-project/pull/213188
[libc++] Cache anchor commits in the benchmark cron (#216124)
Selecting the anchor commits is the only step that needs a full monorepo
clone, so we instead cache it and recompute it once per day.
Fixes #215447
[LLDB] Fix tool dependency tracking on windows (#215927)
On Windows $(CXX) is converted into "$(CXX)" which doesn't work as a
path as needed by dependency tracking. Separate the two uses.
[LLDB] Add a GetTargetSP() accessor to ObjectFileJITDelegate. (NFC) (#215893)
This is needed to implement the Swift REPL and potentially generally
useful to other expression evaluators.
[Clang][Frontend] Fix fix-it size overflow in emitted .dia (#216075)
When fix-its are emitted into a .dia, we previously stored the fix-it
text in a blob of arbitrary size, but the size of the text was stored in
a separate 16 bit field. For really large fix-its, the size won't fit it
those 16 bits, and the compiler crashes.
Switch to a variable length encoding of the fit-it size. This is similar
to this issue:
https://github.com/llvm/llvm-project/commit/e26aea5b290165f3bccffab662a706d4a56f7540
We also remove a hard coded check in the clang library used to load .dia
files that failed for fix-its whose size doesn't fit in 16 bits.
Generated with codex
Co-authored-by: Nuri Amari <nuriamari at fb.com>
lli: Record the host triple on triple-less modules
The JIT compiles for the host, but modules without a target triple kept
an empty triple, which module-triple-based analyses (e.g. runtime
libcall selection) cannot resolve. Set the resolved JIT triple on the
module. This defends against jit test regressions when RuntimeLibraryInfo
starts getting computed from the module instead of TargetOptions.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
www/privoxy: Update to 4.2.0
Improve detection of gethostbyaddr_r and gethostbyname_r by using
compile-time checks with implicit function declarations disabled.
CodeGen: Remove TargetOptions::FloatABIType
This is now fully replaced with the "float-abi" module flag.
If the module flag is not present, the default is computed
from the triple. Consumers are updated to read the module flag.
RuntimeLibraryAnalysis now defers analysis until run() on a Module,
instead of during the pass constructor as before. This requires copying
all of the remaining relevant TargetOptions so they are available
when the module is seen.
Unfortunately, ARM still depends on TargetOptions for determining
the float-abi. -target-abi=aapcs16 still changes the default float-abi,
but an explicit module flag wins.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
CodeGen: Synthesize "float-abi" module flag from -float-abi
Avoid annoying test updates when the corresponding TargetOptions
field is removed. Make the -float-abi llc/opt option a lit test
convenience that records the floating-point ABI in the IR,
mirroring how -mcpu/-mattr are recorded as function attributes.
Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
[clang][docs] Migrate AttributeReference to markdown (#215631)
Tracking issue: #201242
This change is a one-off using a different methodology, described here.
AttributeReference.rst is generated, not checked in, so there's no
separate rename PR. The reST markup lives in AttrDocs.td, which is
essentially a tablegen wrapper that we can "join" with Attr.td to
produce complete reference. I can't simply stream AttrDocs.td through
rst2myst to migrate it.
Instead, my agent used Python regexes to match `let Content = [{` and
similar blocks (`code Intro = [{`) through to the closing delimiters
(`}];`). The one-off script imported the `rst_to_myst` module and called
the `rst_to_myst` library function on the inner reST body text. It then
built up a list of alternating fragments of tablegen and markdown
strings that were concatenated to produce the new contents of
AttrDocs.td.
[25 lines not shown]
[clang-tidy] Fix `misc-const-correctness` false positive on writes through assigned pointers (#216050)
`ExprPointeeResolve` did not resolve through `=`, so a write such as
`*(p = q) = 0` was not recognized as mutating `p`'s pointee and the
check suggested a `const` pointee that does not compile:
```cpp
void func(int *ptr1) {
int *ptr2 = ptr1;
int *ptr3 = ptr1;
*(ptr2 = ptr3) = 0; // warning: pointee of 'ptr2' can be declared 'const'
}
```
Godbolt: https://godbolt.org/z/3o8qnEKs3
An assignment yields an lvalue for the LHS holding the value of the RHS,
so
the dereferenced object is reachable through both operands. Resolve
through
[5 lines not shown]