| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
PiperOrigin-RevId: 638831461
Change-Id: Ie30ff381e7d74a40a689b52e66b2e8bb81e0fda6
|
|
|
|
|
| |
PiperOrigin-RevId: 638778076
Change-Id: I97b9bab2d1b6f87d2f449777145f932949d61a38
|
|
|
|
|
| |
PiperOrigin-RevId: 638723132
Change-Id: I26ef4dbcb1b965a9d8c2f6092ccb51cf3575ba22
|
|
|
|
|
| |
PiperOrigin-RevId: 638430573
Change-Id: Ifc4d93bc4ea30951404546436f5397c8fb1bda57
|
|
|
|
|
| |
PiperOrigin-RevId: 638283381
Change-Id: Icdd46801f530bd4e8083777c14c78593fd6e111d
|
|
|
|
|
| |
PiperOrigin-RevId: 638266358
Change-Id: I8a750a53d5e98bc3ad3b6d36661789d97d6efb0a
|
|
|
|
|
| |
PiperOrigin-RevId: 638244694
Change-Id: I80393c6c00f1554057a915e0d71f88b7d899818c
|
|
|
|
|
| |
PiperOrigin-RevId: 638232699
Change-Id: I134905927ba72eaa5eaf821bb5535942746a3672
|
|
|
|
|
| |
PiperOrigin-RevId: 638094845
Change-Id: I189ce357ccecbe6f341a311e405f9189bf6c0fee
|
|
|
|
|
| |
PiperOrigin-RevId: 638068943
Change-Id: I7ffe7df900ec4854d8712885d212854b31e79fea
|
|
|
|
|
| |
PiperOrigin-RevId: 638039514
Change-Id: I623d87e91ebe0a1166fee175151179b61ef54249
|
|
|
|
|
| |
PiperOrigin-RevId: 638019038
Change-Id: I96a87e4736677df9d44520e4510e089a27372765
|
|
|
|
|
| |
PiperOrigin-RevId: 637972935
Change-Id: Ia684f7761b2a98a0d9d5ae096daba34e9140aa22
|
|
|
|
|
| |
PiperOrigin-RevId: 637958502
Change-Id: If81eba9729c16b5d5ac7187cf74738d8aaace367
|
|
|
|
|
| |
PiperOrigin-RevId: 637934582
Change-Id: Ie89b4317b11adba058dd999800e514eff49d4d69
|
|
|
|
|
| |
PiperOrigin-RevId: 637052089
Change-Id: I8e22c2479749c05d8ca5f9e8eeba480a93da2d18
|
|
|
|
|
| |
PiperOrigin-RevId: 636911360
Change-Id: I525e25b90b91712b95ab7499425de85610ff9115
|
|
|
|
|
| |
PiperOrigin-RevId: 636695970
Change-Id: I22d6f13271ab965563f1f575d9d7ba0ed1af466d
|
|
|
|
|
| |
PiperOrigin-RevId: 636682763
Change-Id: I9e5fd6827cb780c288ff5af54643ee4fbbaca6d5
|
|
|
|
|
| |
PiperOrigin-RevId: 636649618
Change-Id: I73a0be3defa438daf0e9db5c34c0e2feb0e52b69
|
|
|
|
|
| |
PiperOrigin-RevId: 636634618
Change-Id: I812115d2a33dc71446a14deadc6af019eef6dfd7
|
|
|
|
|
| |
PiperOrigin-RevId: 636615840
Change-Id: I34f584ea0c6603a0781e874d683b516de94c6928
|
|
|
|
|
| |
PiperOrigin-RevId: 636566755
Change-Id: I2c8c1f19a67a7a487dd2bbb46c17f9fb4e2b037c
|
|
|
|
|
| |
PiperOrigin-RevId: 636563266
Change-Id: Id4ee907c30d7dac400f1f85776cc5f1fcb3e20b7
|
|
|
|
|
| |
PiperOrigin-RevId: 636152885
Change-Id: If545903854ea39cc4b5c51c88cd555072d27d89e
|
|
|
|
|
| |
PiperOrigin-RevId: 635955480
Change-Id: I9322b4e7732e252007f6ca6c9b0cefc25974c9f8
|
|
|
|
|
| |
PiperOrigin-RevId: 635938476
Change-Id: I49cba8789452f13cfeb4a24203b3b46624aa7269
|
|
|
|
|
|
|
| |
We follow the C++ demangler in not printing the arguments, just an empty <>.
PiperOrigin-RevId: 635858791
Change-Id: I24903d4c5a1e2060e92ca950bf7a61647aee655f
|
|
|
|
|
| |
PiperOrigin-RevId: 633974603
Change-Id: I7efd0f0fadf1803aa8eacb86a18366e9a8a07df0
|
|
|
|
|
| |
PiperOrigin-RevId: 633738511
Change-Id: I3f895d5de1aec5b5b9666523a328f3a3b0344e59
|
|
|
|
|
|
|
| |
The tests work either way, but this way the inputs are more realistic.
PiperOrigin-RevId: 633606944
Change-Id: I6c0440f2fceb5b8d9d4aed5818c3171d3fce2fb8
|
|
|
|
|
| |
PiperOrigin-RevId: 633229582
Change-Id: Ibda908d261b52b1af766304992edd77a5bdd56b5
|
|
|
|
|
| |
PiperOrigin-RevId: 631018414
Change-Id: Ice8efa0af4cb1f72b5d62fbbea4cb12cbead8634
|
|
|
|
|
|
|
|
| |
This function previously returned true whenever the signal stack had unknown
bounds, that is obviously incorrect.
PiperOrigin-RevId: 620084964
Change-Id: I3821730b45773300569b9cbdb7e72442ed109d04
|
|
|
|
|
|
|
|
|
| |
substitutions
These were described in https://github.com/itanium-cxx-abi/cxx-abi/pull/85 and implemented by LLVM.
PiperOrigin-RevId: 607555558
Change-Id: I9991ac88c1fcf63b25b93d93977a83ca343cdb5d
|
|
|
|
|
|
|
| |
The optional single template argument for built-in types is not documented in LLVM's comments that list the grammar, but it is [intentionally implemented](https://github.com/llvm/llvm-project/commit/4bc4d51c18d5c087dfbdad1753c84bba8dbf3be0).
PiperOrigin-RevId: 606843797
Change-Id: Ib5ef1983812e9ea68a39fe64b87b6ad6ce81b93c
|
|
|
|
|
|
|
|
| |
This function copies the parser's state onto the stack in order to perform backtracking.
Adding a complexity guard will ensure that it fails gracefully, instead of contributing to excessive consumption of stack space.
PiperOrigin-RevId: 606720511
Change-Id: I2f6f03e5f8bc4cc571a4159ecfc2af6f3e00fa68
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
return type
For example, this covers the following:
```
template <typename T>
requires std::integral<T>
int foo();
```
Refactor parsing of `Q <requires-clause expr>` into a single function that performs backtracking to avoid reimplementing `ParseTemplateArgs` in terms of nested if-else blocks.
PiperOrigin-RevId: 605785418
Change-Id: I118998a75e050dcf46af125b613b690312fd3cbe
|
|
|
|
|
|
|
| |
These clauses show up in other places that end up mangled as parts of function signatures (e.g. on template struct params). We'll handle those in a follow-up.
PiperOrigin-RevId: 605694497
Change-Id: I1bfe4c0cfaa739fdd24548b1547482410c92b5a7
|
|
|
|
|
|
|
|
|
| |
with `requires` expressions
Support for `requires` expressions will be added in a follow-up.
PiperOrigin-RevId: 605418370
Change-Id: I2c84cdf0c4599e36683b3c94dcbb173ab4fc3ee8
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
C++20 introduced constraints, where concepts such as `std::integral` can be used to restrict template parameters:
```
template <std::integral T>
int foo(T t); // Only accepts integral types.
```
Clang mangles these starting with a prefix `Tk`, followed by the concept name, which mangles as a type.
For example, compare `foo` and `bar` here: https://godbolt.org/z/Kzbrrchde
Note that this implementation doesn't cover the more complex case where the concept is templated too. See [llvm's implementation](https://github.com/llvm/llvm-project/commit/4b163e343cfa54c8d55c9da73c70d58f55ea9df2) and its tests for a thorough version.
PiperOrigin-RevId: 604976260
Change-Id: Ic116c5f6f27c3f7714638bdee8de11dce871f0be
|
|
|
|
|
| |
PiperOrigin-RevId: 604094890
Change-Id: If5634a15c7ea7c8ef2cc9b6d09636ee7836946d2
|
|
|
|
|
|
|
| |
Terminate the stack trace if it isn't.
PiperOrigin-RevId: 600839499
Change-Id: I5692fa6cb52c4c8061b4ac14d8fba70f7fbabc52
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/abseil/abseil-cpp/issues/1465 reports that
some CMake builds on Apply platforms issue
```
warning: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: archive library: libabsl_bad_any_cast_impl.a the table of contents is empty (no object file members in the library define global symbols)
```
Our CMake build handles this problem for header-only libraries by not
building a library at all. For some libraries, for example our polyfills,
the library is only conditionally empty. In these libraries, I added
a single char variable on Apple platforms as a workaround.
I have been able to reproduce the warnings reported in
https://github.com/abseil/abseil-cpp/issues/1465, but they don't fail the
build for me. I don't see them any more after this change.
PiperOrigin-RevId: 595480705
Change-Id: Ie48637e84ebae2f2aea4e2de83b146f30f6a76b9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Linux kernel's rt_sigprocmask correctly handles an unaligned user address[1].
The original issue was for qemu-user, which seems long irrelevant.
Tested locally on an AArch64 CPU and qemu-aarch64-static.
The alignment operation actually serves another purpose: when addr resides in
the last 7 bytes of a page (unaligned), check only the current page and not the
next. Update the comment.
[1]:
kernel/signal.c `SYSCALL_DEFINE4(rt_sigprocmask`
arch/arm64/include/asm/uaccess.h:raw_copy_from_user
arch/arm64/lib/copy_template.S "alignment handled by the hardware"
PiperOrigin-RevId: 592618320
Change-Id: Ifbd05aba42f46e36e710cca940570213036b3ce0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
absl::Symbolize does tons of tiny reads. Speed this up by switching
from lseek+read to a pread, and by reading more data than requested
into a buffer.
A faster absl::Symbolize will be helpful in tests and when printing
stack traces on /threadz etc.
Results for absl::Symbolize benchmark that exercises uncached behavior
of absl::Symbolize:
```
name old time/op new time/op delta
BM_Symbolize 16.4ms ±12% 2.6ms ± 0% -84.06% (p=0.001 n=5+9)
```
PiperOrigin-RevId: 582687566
Change-Id: I44caf189d81867f3fd8c050a3100a4b9a8e744d7
|
|
|
|
|
| |
PiperOrigin-RevId: 580515441
Change-Id: I64999b11f1d83d56ed3680cb2d41c8a1d5f389de
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can determine the signal stack, so use that information to
make better decisions about when to calculate the frame size
and when not to. This fixes a several tests where the memory
layout had the signal stack and main stack in position that
confused some of the greater-than/less-than comparisons.
Also cleanup certain types to avoid more casting than necessary.
PiperOrigin-RevId: 580221819
Change-Id: I0365b03e7893741603dc66e6d36a069d0b7f5404
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The layering_check feature ensures that rules that include a header
explicitly depend on a rule that exports that header. Compiler support
is required, and currently only Clang 16+ supports diagnoses
layering_check failures.
The parse_headers feature ensures headers are self-contained by
compiling them with -fsyntax-only on supported compilers.
PiperOrigin-RevId: 572350144
Change-Id: I37297f761566d686d9dd58d318979d688b7e36d1
|
|
|
|
|
|
|
|
|
| |
and those that call it can be inlined sufficiently far
to mess up high-level skip-counts. But this function
assumes it is the bottommost frame, as in the comment below.
PiperOrigin-RevId: 570790048
Change-Id: I4d354f9e79e13aaa6a8a62a9e0870fbeac075de6
|