[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-31 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 closed https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-31 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From 1dd6c32ee8e053c900e23f37d50f8c3f4868858a Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 01/10] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-31 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > LGTM! Thanks. I will rebase and then "squash and merge" this to the main branch. https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-28 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman approved this pull request. LGTM! https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From aa9d6cd10ff32fdcdd3d1b2ef334aa70f56cccb1 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 01/10] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Karl-Johan Karlsson via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Karl-Johan Karlsson via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Aaron Ballman via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Aaron Ballman via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Aaron Ballman via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Aaron Ballman via cfe-commits
@@ -0,0 +1,223 @@ +// RUN: %clang_cc1 -triple=x86_64-pc-linux-gnu -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s +// RUN: %clang_cc1 -triple=x86_64-pc-win32 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +// Verify that -Wformat-signedness

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > > With the current implementation `-Wformat-signedness` by itself actually > > turn on the signedness warnings. This is not compatible with how gcc do it. > > I guess I have thought that it was not that important to be compatible with > > gcc in this respect. However if it

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-26 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From aa9d6cd10ff32fdcdd3d1b2ef334aa70f56cccb1 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/9] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-25 Thread Aaron Ballman via cfe-commits
AaronBallman wrote: > > Can you also add a test showing the difference between `-Wformat > > -Wformat-signedness` and `-Wformat-signedness` by itself (which does > > nothing)? > > With the current implementation `-Wformat-signedness` by itself actually turn > on the signedness warnings. This

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-25 Thread via cfe-commits
github-actions[bot] wrote: :white_check_mark: With the latest revision this PR passed the Python code formatter. https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-25 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From aa9d6cd10ff32fdcdd3d1b2ef334aa70f56cccb1 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/8] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-25 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > Can you also add a test showing the difference between `-Wformat > -Wformat-signedness` and `-Wformat-signedness` by itself (which does nothing)? With the current implementation `-Wformat-signedness` by itself actually turn on the signedness warnings. This is not compatible

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-22 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman edited https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-22 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman commented: Can you also add a test showing the difference between `-Wformat -Wformat-signedness` and `-Wformat-signedness` by itself (which does nothing)? I'd also like to see a test demonstrating that `#pragma GCC diagnostic ignored -Wformat` disables the

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-22 Thread Aaron Ballman via cfe-commits
@@ -12465,6 +12465,20 @@ isArithmeticArgumentPromotion(Sema , const ImplicitCastExpr *ICE) { S.Context.getFloatingTypeOrder(From, To) < 0; } +static analyze_format_string::ArgType::MatchKind +handleFormatSignedness(analyze_format_string::ArgType::MatchKind Match, +

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-22 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From aa9d6cd10ff32fdcdd3d1b2ef334aa70f56cccb1 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/7] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-22 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > Sorry for the delayed response, this fell off my radar (thanks @Endilll for > mentioning this after meeting with @hazohelet!). No problem. As I wrote above I work in an out of tree backend and I have already implemented this in our downstream repo. Our customer that

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2024-03-21 Thread Aaron Ballman via cfe-commits
AaronBallman wrote: > > I need to extend the tablegen backend ClangDiagnosticsEmitter with some > > kind of new option to handle this, right? > > Alternatively, you could probably use `DiagnosticsEngine::isIgnored` to check > if the `-Wformat-signedness` is enabled or not, and control whether

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-18 Thread Karl-Johan Karlsson via cfe-commits
@@ -11881,6 +11896,8 @@ CheckPrintfHandler::checkFormatExpr(const analyze_printf::PrintfSpecifier , ICE->getType() == S.Context.UnsignedIntTy) { // All further checking is done on the subexpression ImplicitMatch = AT.matchesType(S.Context, ExprTy);

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-11 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From a80bf9d03f19d48c0aca4af7758dc49516da8825 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/6] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-11 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > Alternatively, you could probably use `DiagnosticsEngine::isIgnored` to check > if the `-Wformat-signedness` is enabled or not, and control whether > `MatchSignedNess` is `NoMatch` or `Match`, as your first implementation did. > This way we can achieve GCC compatibility for

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-11 Thread Karl-Johan Karlsson via cfe-commits
karka228 wrote: > > 1. The option -Wformat-signedness is default off. > > > > 2. The -Wformat-signedness warnings are not enabled alone by the -Wformat > > option. > > > > 3. The -Wformat-signedness warnings are not enabled alone by the > > -Wformat-signedness option. > > > > 4. The

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-08 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From a80bf9d03f19d48c0aca4af7758dc49516da8825 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/4] [Sema] Implement support for -Wformat-signedness In

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-06 Thread Aaron Ballman via cfe-commits
AaronBallman wrote: > > I'd like to understand the need for this diagnostic a bit more. I realize > > GCC has it, but it's off-by-default in GCC and `-Wformat` does not enable > > it either: https://godbolt.org/z/Gxczsjdj5 > > We believe that users don't enable off by default warnings often

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-06 Thread Aaron Ballman via cfe-commits
https://github.com/AaronBallman commented: I'd like to understand the need for this diagnostic a bit more. I realize GCC has it, but it's off-by-default in GCC and `-Wformat` does not enable it either: https://godbolt.org/z/Gxczsjdj5 We believe that users don't enable off by default warnings

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Yingchi Long via cfe-commits
https://github.com/inclyc commented: Also please add release notes to let users know what has been changed :) See: `clang/docs/ReleaseNotes.rst` https://github.com/llvm/llvm-project/pull/74440 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Yingchi Long via cfe-commits
@@ -918,6 +918,9 @@ def Wdeprecated : Flag<["-"], "Wdeprecated">, Group, HelpText<"Enable warnings for deprecated constructs and define __DEPRECATED">; def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group, Visibility<[ClangOption, CC1Option]>; +def

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Yingchi Long via cfe-commits
@@ -0,0 +1,107 @@ +// RUN: %clang_cc1 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +int printf(const char *restrict format, ...); +int scanf(const char * restrict, ...); + +void test_printf_bool(_Bool x) +{ +printf("%d", x); // no-warning +

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Yingchi Long via cfe-commits
@@ -11815,6 +11815,18 @@ isArithmeticArgumentPromotion(Sema , const ImplicitCastExpr *ICE) { S.Context.getFloatingTypeOrder(From, To) < 0; } +static clang::analyze_format_string::ArgType::MatchKind inclyc wrote: ```suggestion static

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread via cfe-commits
@@ -0,0 +1,107 @@ +// RUN: %clang_cc1 -std=c11 -fsyntax-only -verify -Wformat -Wformat-signedness %s + +int printf(const char *restrict format, ...); +int scanf(const char * restrict, ...); apple-fcloutier wrote: Please add tests with enum values: ```c

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread via cfe-commits
@@ -918,6 +918,9 @@ def Wdeprecated : Flag<["-"], "Wdeprecated">, Group, HelpText<"Enable warnings for deprecated constructs and define __DEPRECATED">; def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group, Visibility<[ClangOption, CC1Option]>; +def

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Takuya Shimizu via cfe-commits
@@ -918,6 +918,9 @@ def Wdeprecated : Flag<["-"], "Wdeprecated">, Group, HelpText<"Enable warnings for deprecated constructs and define __DEPRECATED">; def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group, Visibility<[ClangOption, CC1Option]>; +def

[clang] [llvm] [Sema] Implement support for -Wformat-signedness (PR #74440)

2023-12-05 Thread Karl-Johan Karlsson via cfe-commits
https://github.com/karka228 updated https://github.com/llvm/llvm-project/pull/74440 >From a80bf9d03f19d48c0aca4af7758dc49516da8825 Mon Sep 17 00:00:00 2001 From: Karl-Johan Karlsson Date: Tue, 5 Dec 2023 10:03:00 +0100 Subject: [PATCH 1/2] [Sema] Implement support for -Wformat-signedness In