| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
| |
This avoids the need to use filesystem APIs just to write to stderr, which emscripten implements the same as this under the hood.
PiperOrigin-RevId: 536525710
Change-Id: I0a647a4593eacfba324505b6e8c4acfb577ac839
|
|
|
|
|
|
|
|
|
| |
to make sure it's clear that they're internal.
Also rename the log and check test files from .h to .inc per https://google.github.io/styleguide/cppguide.html#Self_contained_Headers.
PiperOrigin-RevId: 533603350
Change-Id: Iad5d8b683e33b63784cc8e64b84da09f5fc3bf1e
|
|
|
|
|
|
|
|
|
|
|
| |
non-literals to save an instruction at each operator<<(string) callsite.
The operator<<s get inlined at the callsite. The saved instruction is a 'load immediate' to put the StringType argument in a register for passing.
This does make the logging TU slightly larger, but it will be an overall size win for all but the smallest programs. Smaller, faster code at callsites is worth it anyway.
PiperOrigin-RevId: 528569773
Change-Id: Id8185266a975a12ab6f1a553c2c0846261822396
|
|
|
|
|
|
|
|
|
|
|
| |
dispatching to per-severity constructors and omitting the severity argument.
In that particular ABI, the empty tag structs are NO_CLASS and don't appear in the generated code.
https://godbolt.org/z/crqaPh8Kv
PiperOrigin-RevId: 527989179
Change-Id: I365f11f6ca1de2623690d0a04e6f02f7de82b1fc
|
| |
|
|
|
|
|
|
|
| |
Currently static analysis tools built using the Clang Dataflow Analysis framework can't prove that code under `switch (0) case 0:` is executed on all paths. The Clang Dataflow Analysis framework should ultimately be improved to handle these cases. In the meantime, to enable the use of such tools in their current state, we add a `default` case back to the `switch` statement in `ABSL_LOG_INTERNAL_STATELESS_CONDITION` to help them understand that the code is executed on all paths.
PiperOrigin-RevId: 526638852
Change-Id: I49490dd477ba777aae2530697b75b583242aebc5
|
|
|
|
|
| |
PiperOrigin-RevId: 525178448
Change-Id: I0f35a38f23316b25621148b7fe59becf72bafeff
|
|
|
|
|
| |
PiperOrigin-RevId: 521525676
Change-Id: I40083f534c6904b4823138666deac18ffe6deab6
|
|
|
|
|
| |
PiperOrigin-RevId: 520925224
Change-Id: I8b7eb8b4d4b99d72b860aec532516b428fb2be23
|
|
|
|
|
|
|
|
| |
This change fixes -Wimplicit-const-int-float-conversion warnings
by making the conversions explicit.
PiperOrigin-RevId: 520707623
Change-Id: Ib6917469120cd7458257195cbf39beb3fd397543
|
|
|
|
|
|
|
| |
This avoids "error: an attribute list cannot appear here"
PiperOrigin-RevId: 513430681
Change-Id: I0fd31771793ee4cb66149ef4ce3e3e064dfb260d
|
|
|
|
| |
These make the changed constructors match closer to the other ones that are default.
|
|
|
|
|
| |
PiperOrigin-RevId: 509236105
Change-Id: I635f521aff106875f06bb93c332d3e437d0ad409
|
|
|
|
|
|
|
|
|
| |
uninitialized array in logging.
It's uninitialized on purpose; we'll write into it through the span.
PiperOrigin-RevId: 504318917
Change-Id: I79835f0190253b8b470b3ca404f3979715f2a718
|
|
|
|
|
|
|
| |
This was tested with https://github.com/protocolbuffers/protobuf/pull/11623 in Protobuf's windows shared library build.
PiperOrigin-RevId: 504294227
Change-Id: I9657197e649a334585bffa2c7bc6340cd2354e84
|
|
|
|
|
| |
PiperOrigin-RevId: 502689876
Change-Id: If75b00e2e257283b60c41411ef7a60dbd7cd8c6d
|
|
|
|
|
|
|
| |
volatile pointer type testcase to char pointers.
PiperOrigin-RevId: 501781539
Change-Id: I99012cecd960745de8a921b96671cde42e28a3af
|
|
|
|
|
| |
PiperOrigin-RevId: 497124964
Change-Id: Ia5d7005fa9bc422c1ac9a47d5cbaf8c6b8f06d84
|
|
|
|
|
| |
PiperOrigin-RevId: 496397075
Change-Id: Ib44467cf5704b9147c7fd197e8343a666fada1c3
|
|
|
|
|
|
|
|
|
| |
This was likely an unintentional behavior change made a while ago while trying to reduce duplication. The new behavior will always include the unexpanded macro in the error string. For example, `CHECK_EQ(MACRO(x), MACRO(y))` will now output "MACRO(x) == MACRO(y)" if it fails. Before this change, CHECK and QCHECK were the only macros that had this behavior.
Not using function-like macro aliases is a possible alternative here, but unfortunately that would flood the macro namespace downstream with CHECK* and break existing code.
PiperOrigin-RevId: 495138582
Change-Id: I6a1afd89a6b9334003362e5d3e55da68f86eec98
|
|
|
|
|
|
|
|
|
| |
This was an unintentional behavior change when we added a new layer of macros. Not using function-like macro aliases would get around this, but unfortunately that would flood the macro namespace downstream with CHECK and LOG (and break existing code).
Note, the old behavior only applied to CHECK and QCHECK. Other CHECK macros already had multiple layers of function-like macros and were unaffected.
PiperOrigin-RevId: 493984662
Change-Id: I9a050dcaf01f2b6935f02cd42e23bc3a4d5fc62a
|
|
|
|
|
| |
PiperOrigin-RevId: 493617276
Change-Id: Ia7fb938c7abfba10e5b62f43f3cf71fb99b132f5
|
|
|
|
|
|
|
| |
This will allow us to create ABSL_-prefixed variants with shared implementation.
PiperOrigin-RevId: 493383908
Change-Id: I3529021df7afa642fadaf43eb9fd8249e9202758
|
|
|
|
|
|
|
| |
including for (size_t, char) overload.
PiperOrigin-RevId: 491456410
Change-Id: I76dec24b0bd02204fa38419af9247cee38b1cf50
|
|
|
|
|
|
|
| |
leave partial data in the buffer (all decoders should ignore it anyway) and to be sure that we don't try to put any subsequent operands in either (there shouldn't be enough space).
PiperOrigin-RevId: 490143656
Change-Id: I4d743dd9214013fbd151478ef662d50affd5ff7a
|
|
|
|
|
|
|
| |
This stores the operands to LOG (and CHECK) as separate fields in a serialized protobuf. The protobuf format is not yet published.
PiperOrigin-RevId: 489275799
Change-Id: I86d83671a6b1feb2bddd5bee51552907897ca8eb
|
|
|
|
|
| |
PiperOrigin-RevId: 489044912
Change-Id: I1657dd60bcfa2d0fb4b889f27f4f237325b73f08
|
|
|
|
|
|
|
| |
This is used when demoting regular logging inside a LogSink::Send to raw-like to avoid infinite recursive dispatch.
PiperOrigin-RevId: 488934154
Change-Id: I0aaaeea0ceaaff3c4394308a7102a55befbef290
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deprecation of ATOMIC_FLAG_INIT.
Another option would have been to use macros to only initialize
std::atomic_flag before C++20, but I decided to use one compilation
path instead.
The major difference between std::atomic_flag and std::atomic<bool> is
that the former is guaranteed to be lock-free, but we already assume
std::atomic<bool> is lock-free in many places.
https://en.cppreference.com/w/cpp/atomic/atomic_flag
PiperOrigin-RevId: 487397075
Change-Id: I3f1c539ec8b2ca58547282e69ed73e93243e8efe
|
|
|
|
|
| |
PiperOrigin-RevId: 486867412
Change-Id: Ib54b1acaf1ea57f8f377c87261d7d52e9a48784f
|
|
|
|
|
|
|
| |
in a couple places, plus several more that have yet to be released.
PiperOrigin-RevId: 486759835
Change-Id: Ib1b24f287f856ca38b691fbce7e747f0f5a34626
|
|
|
|
|
| |
PiperOrigin-RevId: 486227733
Change-Id: If492d715e5758971cf7bd0ccd748b47b1424a3c7
|
|
|
|
|
| |
PiperOrigin-RevId: 486023797
Change-Id: I0b82754fd40c2d6fb451f304aaf1d795eed8d009
|
|
|
|
|
|
|
|
|
| |
If a user-defined type has `AbslStringify()` defined, it will always be used for logging over `operator<<`.
`HasAbslStringify` now uses the empty class `UnimplementedSink` for its checks instead of `StringifySink` in order to make it work in cases involving other sinks.
PiperOrigin-RevId: 485710377
Change-Id: Ibdd916151c7abc3269c35fbe79b772867f3d25e1
|
|
|
|
|
|
| |
Bug: chromium:1292951
PiperOrigin-RevId: 481757795
Change-Id: I03c808222c6c4d3d7052576ab4b36141e5f1ebbc
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Addresses failures with the following, in some files:
-Wshorten-64-to-32
-Wimplicit-int-conversion
-Wsign-compare
-Wsign-conversion
-Wtautological-unsigned-zero-compare
(This specific CL focuses on the logging facility.)
Bug: chromium:1292951
PiperOrigin-RevId: 479384741
Change-Id: Id450438ea3781ce25137366ca16757e810020ad4
|
|
|
|
|
|
|
| |
Fixes -wunused-variable warning
PiperOrigin-RevId: 478886333
Change-Id: Ib84def2ddaf6a6860606e78603c2c25865ce2814
|
|
|
|
|
|
|
| |
In Android builds this library calls __android_log_write directly, and so needs this linker dep.
PiperOrigin-RevId: 474080654
Change-Id: I19f6ac4f78e635541ccad08ec9e553adfe609b3f
|
|
|
|
|
| |
PiperOrigin-RevId: 471256712
Change-Id: I2a1e4846a524bccd3c935a40abab0c0218afdfc0
|
|
PiperOrigin-RevId: 470080638
Change-Id: I8d9ddfabc7704c383ed5a73abf0411f4c58a4bf7
|