|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
76476efd |
| 25-Jul-2022 |
Muhammad Usman Shahid <[email protected]> |
Rewording "static_assert" diagnostics
This patch rewords the static assert diagnostic output. Failing a _Static_assert in C should not report that static_assert failed. This changes the wording to b
Rewording "static_assert" diagnostics
This patch rewords the static assert diagnostic output. Failing a _Static_assert in C should not report that static_assert failed. This changes the wording to be more like GCC and uses "static assertion" when possible instead of hard coding the name. This also changes some instances of 'static_assert' to instead be based on the token in the source code.
Differential Revision: https://reviews.llvm.org/D129048
show more ...
|
| #
1da31190 |
| 21-Jul-2022 |
Erich Keane <[email protected]> |
Revert "Rewording the "static_assert" to static assertion"
Looks like we again are going to have problems with libcxx tests that are overly specific in their dependency on clang's diagnostics.
This
Revert "Rewording the "static_assert" to static assertion"
Looks like we again are going to have problems with libcxx tests that are overly specific in their dependency on clang's diagnostics.
This reverts commit 6542cb55a3eb115b1c3592514590a19987ffc498.
show more ...
|
| #
6542cb55 |
| 21-Jul-2022 |
Muhammad Usman Shahid <[email protected]> |
Rewording the "static_assert" to static assertion
This patch is basically the rewording of the static assert statement's output(error) on screen after failing. Failing a _Static_assert in C should n
Rewording the "static_assert" to static assertion
This patch is basically the rewording of the static assert statement's output(error) on screen after failing. Failing a _Static_assert in C should not report that static_assert failed. It’d probably be better to reword the diagnostic to be more like GCC and say “static assertion” failed in both C and C++.
consider a c file having code
_Static_assert(0, "oh no!");
In clang the output is like:
<source>:1:1: error: static_assert failed: oh no! _Static_assert(0, "oh no!"); ^ ~ 1 error generated. Compiler returned: 1
Thus here the "static_assert" is not much good, it will be better to reword it to the "static assertion failed" to more generic. as the gcc prints as:
<source>:1:1: error: static assertion failed: "oh no!" 1 | _Static_assert(0, "oh no!"); | ^~~~~~~~~~~~~~ Compiler returned: 1
The above can also be seen here. This patch is about rewording the static_assert to static assertion.
Differential Revision: https://reviews.llvm.org/D129048
show more ...
|
| #
041d4012 |
| 14-Jul-2022 |
Mitch Phillips <[email protected]> |
Revert "Rewording "static_assert" diagnostics"
This reverts commit b7e77ff25fb2412f6ab6d6cc756666b0e2f97bd3.
Reason: Broke sanitizer builds bots + libcxx. 'static assertion expression is not an int
Revert "Rewording "static_assert" diagnostics"
This reverts commit b7e77ff25fb2412f6ab6d6cc756666b0e2f97bd3.
Reason: Broke sanitizer builds bots + libcxx. 'static assertion expression is not an integral constant expression'. More details available in the Phabricator review: https://reviews.llvm.org/D129048
show more ...
|
| #
b7e77ff2 |
| 14-Jul-2022 |
Muhammad Usman Shahid <[email protected]> |
Rewording "static_assert" diagnostics
This patch rewords the static assert diagnostic output. Failing a _Static_assert in C should not report that static_assert failed. This changes the wording to b
Rewording "static_assert" diagnostics
This patch rewords the static assert diagnostic output. Failing a _Static_assert in C should not report that static_assert failed. This changes the wording to be more like GCC and uses "static assertion" when possible instead of hard coding the name. This also changes some instances of 'static_assert' to instead be based on the token in the source code.
Differential Revision: https://reviews.llvm.org/D129048
show more ...
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
d4892a16 |
| 17-Jun-2022 |
Corentin Jabot <[email protected]> |
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places i
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places is already diagnosed, as that cannot appear in identifiers and other grammar constructs.
The warning is off by default as its likely to be somewhat disruptive otherwise.
This warning allows clang to conform to the yet-to be approved WG21 "P2295R5 Support for UTF-8 as a portable source file encoding" paper.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D128059
show more ...
|
| #
a262f4db |
| 12-Jul-2022 |
Jonas Devlieghere <[email protected]> |
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
This reverts commit cc309721d20c8e544ae7a10a66735ccf4981a11c because it breaks the following tests on GreenDragon:
TestDataFormatterOb
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
This reverts commit cc309721d20c8e544ae7a10a66735ccf4981a11c because it breaks the following tests on GreenDragon:
TestDataFormatterObjCCF.py TestDataFormatterObjCExpr.py TestDataFormatterObjCKVO.py TestDataFormatterObjCNSBundle.py TestDataFormatterObjCNSData.py TestDataFormatterObjCNSError.py TestDataFormatterObjCNSNumber.py TestDataFormatterObjCNSURL.py TestDataFormatterObjCPlain.py TestDataFormatterObjNSException.py
https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake/45288/
show more ...
|
| #
cc309721 |
| 17-Jun-2022 |
Corentin Jabot <[email protected]> |
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places i
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places is already diagnosed, as that cannot appear in identifiers and other grammar constructs.
The warning is off by default as its likely to be somewhat disruptive otherwise.
This warning allows clang to conform to the yet-to be approved WG21 "P2295R5 Support for UTF-8 as a portable source file encoding" paper.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D128059
show more ...
|
| #
50416e54 |
| 09-Jul-2022 |
Corentin Jabot <[email protected]> |
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
It is probable thart this change crashes on the powerpc bots.
This reverts commit 355532a1499aa9b13a89fb5b5caaba2344d57cd7.
|
| #
355532a1 |
| 17-Jun-2022 |
Corentin Jabot <[email protected]> |
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places i
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places is already diagnosed, as that cannot appear in identifiers and other grammar constructs.
The warning is off by default as its likely to be somewhat disruptive otherwise.
This warning allows clang to conform to the yet-to be approved WG21 "P2295R5 Support for UTF-8 as a portable source file encoding" paper.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D128059
show more ...
|
| #
e9fe20da |
| 06-Jul-2022 |
Nico Weber <[email protected]> |
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
This reverts commit 4174f0ca618b467571b43cff12cbe4c4239670f8.
Also revert follow-up "[Clang] Fix invalid utf-8 detection" This reverts c
Revert "[Clang] Add a warning on invalid UTF-8 in comments."
This reverts commit 4174f0ca618b467571b43cff12cbe4c4239670f8.
Also revert follow-up "[Clang] Fix invalid utf-8 detection" This reverts commit bf45e27a676d87944f1f13d5f0d0f39935fc4010.
The second commit broke tests, see comments on https://reviews.llvm.org/D129223, and it sounds like the first commit isn't valid without the second one. So reverting both for now.
show more ...
|
| #
4174f0ca |
| 17-Jun-2022 |
Corentin Jabot <[email protected]> |
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places i
[Clang] Add a warning on invalid UTF-8 in comments.
Introduce an off-by default `-Winvalid-utf8` warning that detects invalid UTF-8 code units sequences in comments.
Invalid UTF-8 in other places is already diagnosed, as that cannot appear in identifiers and other grammar constructs.
The warning is off by default as its likely to be somewhat disruptive otherwise.
This warning allows clang to conform to the yet-to be approved WG21 "P2295R5 Support for UTF-8 as a portable source file encoding" paper.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D128059
show more ...
|
| #
da1609ad |
| 29-Jun-2022 |
Corentin Jabot <[email protected]> |
Improve the formatting of static_assert messages
Display 'static_assert failed: message' instead of 'static_assert failed "message"' to be consistent with other implementations and be slightly more
Improve the formatting of static_assert messages
Display 'static_assert failed: message' instead of 'static_assert failed "message"' to be consistent with other implementations and be slightly more readable.
Reviewed By: #libc, aaron.ballman, philnik, Mordante
Differential Revision: https://reviews.llvm.org/D128844
show more ...
|
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2 |
|
| #
64ab2b1d |
| 20-Aug-2021 |
Corentin Jabot <[email protected]> |
Improve handling of static assert messages.
Instead of dumping the string literal (which quotes it and escape every non-ascii symbol), we can use the content of the string when it is a 8 byte string
Improve handling of static assert messages.
Instead of dumping the string literal (which quotes it and escape every non-ascii symbol), we can use the content of the string when it is a 8 byte string.
Wide, UTF-8/UTF-16/32 strings are still completely escaped, until we clarify how these entities should behave (cf https://wg21.link/p2361).
`FormatDiagnostic` is modified to escape non printable characters and invalid UTF-8.
This ensures that unicode characters, spaces and new lines are properly rendered in static messages. This make clang more consistent with other implementation and fixes this tweet https://twitter.com/jfbastien/status/1298307325443231744 :)
Of note, `PaddingChecker` did print out new lines that were later removed by the diagnostic printing code. To be consistent with its tests, the new lines are removed from the diagnostic.
Unicode tables updated to both use the Unicode definitions and the Unicode 14.0 data.
U+00AD SOFT HYPHEN is still considered a print character to match existing practices in terminals, in addition of being considered a formatting character as per Unicode.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D108469
show more ...
|
| #
a774ba7f |
| 28-Jun-2022 |
Corentin Jabot <[email protected]> |
Revert "Improve handling of static assert messages."
This reverts commit 870b6d21839707a3e4c40a29b526995f065a220f.
This seems to break some libc++ tests, reverting while investigating
|
| #
870b6d21 |
| 20-Aug-2021 |
Corentin Jabot <[email protected]> |
Improve handling of static assert messages.
Instead of dumping the string literal (which quotes it and escape every non-ascii symbol), we can use the content of the string when it is a 8 byte string
Improve handling of static assert messages.
Instead of dumping the string literal (which quotes it and escape every non-ascii symbol), we can use the content of the string when it is a 8 byte string.
Wide, UTF-8/UTF-16/32 strings are still completely escaped, until we clarify how these entities should behave (cf https://wg21.link/p2361).
`FormatDiagnostic` is modified to escape non printable characters and invalid UTF-8.
This ensures that unicode characters, spaces and new lines are properly rendered in static messages. This make clang more consistent with other implementation and fixes this tweet https://twitter.com/jfbastien/status/1298307325443231744 :)
Of note, `PaddingChecker` did print out new lines that were later removed by the diagnostic printing code. To be consistent with its tests, the new lines are removed from the diagnostic.
Unicode tables updated to both use the Unicode definitions and the Unicode 14.0 data.
U+00AD SOFT HYPHEN is still considered a print character to match existing practices in terminals, in addition of being considered a formatting character as per Unicode.
Reviewed By: aaron.ballman, #clang-language-wg
Differential Revision: https://reviews.llvm.org/D108469
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
87472340 |
| 12-Jul-2021 |
Corentin Jabot <[email protected]> |
Partially implement P1401R5 (Narrowing contextual conversions to bool)
Support Narrowing conversions to bool in if constexpr condition under C++23 language mode.
Only if constexpr is implemented as
Partially implement P1401R5 (Narrowing contextual conversions to bool)
Support Narrowing conversions to bool in if constexpr condition under C++23 language mode.
Only if constexpr is implemented as the behavior of static_assert is already conforming. Still need to work on explicit(bool) to complete support.
show more ...
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3 |
|
| #
8da09038 |
| 03-Mar-2021 |
Aaron Ballman <[email protected]> |
Improve static_assert/_Static_assert diagnostics
Our diagnostics relating to static assertions were a bit confused. For instance, when in MS compatibility mode in C (where we accept static_assert ev
Improve static_assert/_Static_assert diagnostics
Our diagnostics relating to static assertions were a bit confused. For instance, when in MS compatibility mode in C (where we accept static_assert even without including <assert.h>), we would fail to warn the user that they were using the wrong spelling (even in pedantic mode), we were missing a compatibility warning about using _Static_assert in earlier standards modes, diagnostics for the optional message were not reflected in C as they were in C++, etc.
show more ...
|
|
Revision tags: llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1, llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3, llvmorg-9.0.0-rc2, llvmorg-9.0.0-rc1, llvmorg-10-init, llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4, llvmorg-8.0.0-rc3, llvmorg-7.1.0, llvmorg-7.1.0-rc1, llvmorg-8.0.0-rc2, llvmorg-8.0.0-rc1 |
|
| #
fb2c74d9 |
| 20-Dec-2018 |
Clement Courbet <[email protected]> |
[Sema] Better static assert diagnostics for expressions involving temporaries/casts/....
Summary: Handles expressions such as: - `std::is_const<T>()` - `std::is_const<T>()()`; - `std::is_same(dec
[Sema] Better static assert diagnostics for expressions involving temporaries/casts/....
Summary: Handles expressions such as: - `std::is_const<T>()` - `std::is_const<T>()()`; - `std::is_same(decltype(U()), V>::value`;
Reviewers: aaron.ballman, Quuxplusone
Subscribers: cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D55552
llvm-svn: 349729
show more ...
|
| #
f44c6f40 |
| 11-Dec-2018 |
Clement Courbet <[email protected]> |
Reland r348741 "[Sema] Further improvements to to static_assert diagnostics."
Fix a dangling reference to temporary, never return nullptr.
llvm-svn: 348834
|
| #
4ba13bd3 |
| 11-Dec-2018 |
Clement Courbet <[email protected]> |
Revert r348830 "[Sema]improve static_assert(!expr)"
Submitted the wrong change.
llvm-svn: 348831
|
| #
67b03de9 |
| 11-Dec-2018 |
Clement Courbet <[email protected]> |
[Sema]improve static_assert(!expr)
llvm-svn: 348830
|
| #
d872041f |
| 10-Dec-2018 |
Clement Courbet <[email protected]> |
Revert r348741 "[Sema] Further improvements to to static_assert diagnostics."
Seems to break build bots.
llvm-svn: 348742
|
| #
057f7695 |
| 10-Dec-2018 |
Clement Courbet <[email protected]> |
[Sema] Further improvements to to static_assert diagnostics.
Summary: We're now handling cases like `static_assert(!expr)` and static_assert(!(expr))`.
Reviewers: aaron.ballman, Quuxplusone
Subscr
[Sema] Further improvements to to static_assert diagnostics.
Summary: We're now handling cases like `static_assert(!expr)` and static_assert(!(expr))`.
Reviewers: aaron.ballman, Quuxplusone
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D55270
llvm-svn: 348741
show more ...
|
|
Revision tags: llvmorg-7.0.1, llvmorg-7.0.1-rc3 |
|
| #
9d432e0d |
| 04-Dec-2018 |
Clement Courbet <[email protected]> |
[WIP][Sema] Improve static_assert diagnostics for type traits.
Summary: In our codebase, `static_assert(std::some_type_trait<Ts...>::value, "msg")` (where `some_type_trait` is an std type_trait and
[WIP][Sema] Improve static_assert diagnostics for type traits.
Summary: In our codebase, `static_assert(std::some_type_trait<Ts...>::value, "msg")` (where `some_type_trait` is an std type_trait and `Ts...` is the appropriate template parameters) account for 11.2% of the `static_assert`s.
In these cases, the `Ts` are typically not spelled out explicitly, e.g. `static_assert(std::is_same<SomeT::TypeT, typename SomeDependentT::value_type>::value, "message");`
The diagnostic when the assert fails is typically not very useful, e.g. `static_assert failed due to requirement 'std::is_same<SomeT::TypeT, typename SomeDependentT::value_type>::value' "message"`
This change makes the diagnostic spell out the types explicitly , e.g. `static_assert failed due to requirement 'std::is_same<int, float>::value' "message"`
See tests for more examples.
After this is submitted, I intend to handle `static_assert(!std::some_type_trait<Ts...>::value, "msg")`, which is another 6.6% of static_asserts.
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D54903
llvm-svn: 348239
show more ...
|