[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-24 Thread Takuya Shimizu via cfe-commits
hazohelet wrote: > ping @hazohelet . This should be good to land and should help clear some red > in our CI for Linux kernel builds. Thanks for the ping. I was away for a while. I'm merging this after updating the PR descriptions. https://github.com/llvm/llvm-project/pull/65969

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-22 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: ping @hazohelet . This should be good to land and should help clear some red in our CI for Linux kernel builds. https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-20 Thread Richard Smith via cfe-commits
https://github.com/zygoloid approved this pull request. Thank you! https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-20 Thread Richard Smith via cfe-commits
https://github.com/zygoloid resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-19 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. Thanks for the fix! https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-18 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet updated https://github.com/llvm/llvm-project/pull/65969 >From 5ee1a4f83c69b5e2910ea883dca7f0fa2c1a4bd3 Mon Sep 17 00:00:00 2001 From: Takuya Shimizu Date: Wed, 13 Sep 2023 17:43:11 +0900 Subject: [PATCH 1/4] [clang][Diagnostics] Separate Wformat-overflow and

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-14 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet updated https://github.com/llvm/llvm-project/pull/65969: >From 5ee1a4f83c69b5e2910ea883dca7f0fa2c1a4bd3 Mon Sep 17 00:00:00 2001 From: Takuya Shimizu Date: Wed, 13 Sep 2023 17:43:11 +0900 Subject: [PATCH 1/3] [clang][Diagnostics] Separate Wformat-overflow and

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-14 Thread Takuya Shimizu via cfe-commits
@@ -1350,10 +1360,17 @@ void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD, llvm::APSInt::getUnsigned(H.getSizeLowerBound()) .extOrTrunc(SizeTypeWidth); if (FormatSize > *SourceSize && *SourceSize != 0) { - DiagID =

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-14 Thread Takuya Shimizu via cfe-commits
@@ -961,10 +961,16 @@ def FormatNonStandard : DiagGroup<"format-non-iso">; def FormatY2K : DiagGroup<"format-y2k">; def FormatPedantic : DiagGroup<"format-pedantic">; def FormatTypeConfusion : DiagGroup<"format-type-confusion">; + +def FormatOverflowNonKprintf:

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: @nathanchance and I have done a bunch of testing of this revision (see comments https://github.com/ClangBuiltLinux/linux/issues/1923#issuecomment-1718144462 and down); this looks like something that will work nicely for the Linux kernel's use case! Thanks for all of the

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid dismissed https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid review_request_removed https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid review_requested https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid commented: I'm happy with the overall approach here; please don't block on further review from me. https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
@@ -1350,10 +1360,17 @@ void Sema::checkFortifiedBuiltinMemoryFunction(FunctionDecl *FD, llvm::APSInt::getUnsigned(H.getSizeLowerBound()) .extOrTrunc(SizeTypeWidth); if (FormatSize > *SourceSize && *SourceSize != 0) { - DiagID =

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
@@ -961,10 +961,16 @@ def FormatNonStandard : DiagGroup<"format-non-iso">; def FormatY2K : DiagGroup<"format-y2k">; def FormatPedantic : DiagGroup<"format-pedantic">; def FormatTypeConfusion : DiagGroup<"format-type-confusion">; + +def FormatOverflowNonKprintf:

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid edited https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Richard Smith via cfe-commits
https://github.com/zygoloid resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet resolved https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet updated https://github.com/llvm/llvm-project/pull/65969: >From 5ee1a4f83c69b5e2910ea883dca7f0fa2c1a4bd3 Mon Sep 17 00:00:00 2001 From: Takuya Shimizu Date: Wed, 13 Sep 2023 17:43:11 +0900 Subject: [PATCH 1/2] [clang][Diagnostics] Separate Wformat-overflow and

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-13 Thread Takuya Shimizu via cfe-commits
hazohelet wrote: Thanks for the detailed suggestion! I agree it's the appropriate approach. I was planning to separate `Wformat-truncation` from `Wfortify-source` sometime after this PR (as was requested in the same issue), but now that we are going to introduce a new warning group, we should

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Richard Smith via cfe-commits
@@ -851,6 +851,50 @@ class ScanfDiagnosticFormatHandler } }; +/// `I` points to the next character of `%p` format. +/// This functon checks if the subsequent character can be linux kernel's +/// extnded format specifier +static inline constexpr bool

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Richard Smith via cfe-commits
https://github.com/zygoloid edited https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Richard Smith via cfe-commits
https://github.com/zygoloid requested changes to this pull request. This looks like the wrong approach to me. I really think you should be splitting the warning into two parts, so that only the kernel developers see a change in diagnostic output. That would seem to make this patch simpler as

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Nick Desaulniers via cfe-commits
@@ -851,6 +851,50 @@ class ScanfDiagnosticFormatHandler } }; +/// `I` points to the next character of `%p` format. +/// This functon checks if the subsequent character can be linux kernel's +/// extnded format specifier +static inline constexpr bool

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Nick Desaulniers via cfe-commits
@@ -851,6 +851,50 @@ class ScanfDiagnosticFormatHandler } }; +/// `I` points to the next character of `%p` format. +/// This functon checks if the subsequent character can be linux kernel's +/// extnded format specifier +static inline constexpr bool

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Nick Desaulniers via cfe-commits
@@ -163,6 +163,10 @@ Improvements to Clang's diagnostics - Clang's ``-Wfortify-source`` now diagnoses ``snprintf`` call that is known to result in string truncation. (`#64871: `_). + Clang stops calculating the minimum

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: > Is there some way we can narrow the scope of this patch so we don't lose > warnings for normal `snprintf`s, only for the kernel one? If we really can't > tell the difference from the source code, we could move the affected warnings > to a different warning group

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Takuya Shimizu via cfe-commits
@@ -851,6 +851,50 @@ class ScanfDiagnosticFormatHandler } }; +/// `I` points to the next character of `%p` format. +/// This functon checks if the subsequent character can be linux kernel's +/// extnded format specifier +static inline constexpr bool

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Takuya Shimizu via cfe-commits
hazohelet wrote: > Is there some way we can narrow the scope of this patch so we don't lose > warnings for normal `snprintf`s, only for the kernel one? If we really can't > tell the difference from the source code, we could move the affected warnings > to a different warning group instead, so

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-12 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet updated https://github.com/llvm/llvm-project/pull/65969: >From 80d8743441ce1e25f19dbc48bce480b5becfa208 Mon Sep 17 00:00:00 2001 From: Takuya Shimizu Date: Tue, 12 Sep 2023 00:39:44 +0900 Subject: [PATCH 1/3] [clang][Sema] Stop format size estimator upon %p to

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Richard Smith via cfe-commits
zygoloid wrote: Is there some way we can narrow the scope of this patch so we don't lose warnings for normal `snprintf`s, only for the kernel one? If we really can't tell the difference from the source code, we could move the affected warnings to a different warning group instead, so the

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Nick Desaulniers via cfe-commits
@@ -860,6 +860,16 @@ class EstimateSizeFormatHandler : Size(std::min(Format.find(0), Format.size()) + 1 /* null byte always written by sprintf */) {} + bool ShouldStopOnFormatSpecifier(const analyze_printf::PrintfSpecifier , +

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers commented: Thanks for the patch! Can we document this behavior somewhere? https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Nick Desaulniers via cfe-commits
@@ -429,7 +429,13 @@ bool clang::analyze_format_string::ParsePrintfString(FormatStringHandler , // we can recover from? if (!FSR.hasValue()) continue; -// We have a format specifier. Pass it to the callback. +// We have a format specifier. +// In

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers edited https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
@@ -96,6 +96,11 @@ void call_snprintf(double d) { __builtin_snprintf(buf, 1, "%.1000g", d); // expected-warning {{'snprintf' will always be truncated; specified size is 1, but format string expands to at least 2}} __builtin_snprintf(buf, 5, "%.1000g", d);

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread via cfe-commits
llvmbot wrote: @llvm/pr-subscribers-clang Changes GCC stops counting format string's size when it sees %p format in order to avoid `Wformat-truncation` false positive against Linux kernel's format extension (%pOF, for example). This change makes clang's behavior align with GCC's. As

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread via cfe-commits
https://github.com/llvmbot labeled https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet review_requested https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet review_requested https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet review_requested https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet labeled https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet labeled https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet review_requested https://github.com/llvm/llvm-project/pull/65969 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Stop format size estimator upon %p to adapt to linux kernel's extension (PR #65969)

2023-09-11 Thread Takuya Shimizu via cfe-commits
https://github.com/hazohelet created https://github.com/llvm/llvm-project/pull/65969: GCC stops counting format string's size when it sees %p format in order to avoid `Wformat-truncation` false positive against Linux kernel's format extension (%pOF, for example). This change makes clang's