[clang] Diagnose problematic uses of constructor/destructor attribute (PR #67673)

2023-10-06 Thread Nick Desaulniers via cfe-commits
@@ -2352,26 +2352,126 @@ static void handleUnusedAttr(Sema &S, Decl *D, const ParsedAttr &AL) { D->addAttr(::new (S.Context) UnusedAttr(S.Context, AL)); } -static void handleConstructorAttr(Sema &S, Decl *D, const ParsedAttr &AL) { - uint32_t priority = ConstructorAttr::De

[clang] Diagnose problematic uses of constructor/destructor attribute (PR #67673)

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

[clang-tools-extra] Diagnose problematic uses of constructor/destructor attribute (PR #67673)

2023-10-09 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. https://github.com/llvm/llvm-project/pull/67673 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Implement the 'counted_by' attribute (PR #68750)

2023-10-14 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. https://github.com/llvm/llvm-project/pull/68750 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] 610ec95 - [clang] allow const structs/unions/arrays to be constant expressions for C

2023-08-02 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-08-02T15:32:37-07:00 New Revision: 610ec954e1f81c0e8fcadedcd25afe643f5a094e URL: https://github.com/llvm/llvm-project/commit/610ec954e1f81c0e8fcadedcd25afe643f5a094e DIFF: https://github.com/llvm/llvm-project/commit/610ec954e1f81c0e8fcadedcd25afe643f5a094e.di

[clang] 769333a - [clang][CGExprConstant] handle unary negation on integrals

2023-08-07 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-08-07T14:51:01-07:00 New Revision: 769333aeeb4508a39ce61cde5d70d880f9abfc35 URL: https://github.com/llvm/llvm-project/commit/769333aeeb4508a39ce61cde5d70d880f9abfc35 DIFF: https://github.com/llvm/llvm-project/commit/769333aeeb4508a39ce61cde5d70d880f9abfc35.di

[clang] f6267d3 - [clang][CGExprConstant] handle implicit widening/narrowing Int-to-Int casts

2023-08-07 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-08-07T14:57:25-07:00 New Revision: f6267d3b98c11b50bf24946f21c6646d2d3f6fa8 URL: https://github.com/llvm/llvm-project/commit/f6267d3b98c11b50bf24946f21c6646d2d3f6fa8 DIFF: https://github.com/llvm/llvm-project/commit/f6267d3b98c11b50bf24946f21c6646d2d3f6fa8.di

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

2023-09-08 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers created https://github.com/llvm/llvm-project/pull/65818: After commit 610ec954e1f8 ("[clang] allow const structs/unions/arrays to be constant expressions for C"), attempts to evaluate structs/unions/arrays as constants are also performed for C++98 and C++03. A

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

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

[clang] [clang][VarDecl] Reset un-evaluated constant for all C++ modes (PR #65818)

2023-09-11 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers closed https://github.com/llvm/llvm-project/pull/65818 ___ 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 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 Nick Desaulniers via cfe-commits
@@ -429,7 +429,13 @@ bool clang::analyze_format_string::ParsePrintfString(FormatStringHandler &H, // we can recover from? if (!FSR.hasValue()) continue; -// We have a format specifier. Pass it to the callback. +// We have a format specifier. +// In c

[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 https://lists.llvm.org/cgi-bin/mailman

[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 &FS, +

[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 instea

[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 len

[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 canBeLinuxFormatExtension

[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 canBeLinuxFormatExtension

[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] 9115f18 - [clang][JumpDiagnostics] bring VerifyIndirectOrAsmJumps to C++17

2023-07-14 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-07-14T15:20:08-07:00 New Revision: 9115f18de90611d42147838e53bd8e37f206b744 URL: https://github.com/llvm/llvm-project/commit/9115f18de90611d42147838e53bd8e37f206b744 DIFF: https://github.com/llvm/llvm-project/commit/9115f18de90611d42147838e53bd8e37f206b744.di

[clang] f0f395e - Revert "Reland "[Clang][SemaCXX] Add unused warning for variables declared in condition expressions""

2023-08-31 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-08-31T11:58:41-07:00 New Revision: f0f395e00e2ec3f1f20ca9021d1554fde73d56c9 URL: https://github.com/llvm/llvm-project/commit/f0f395e00e2ec3f1f20ca9021d1554fde73d56c9 DIFF: https://github.com/llvm/llvm-project/commit/f0f395e00e2ec3f1f20ca9021d1554fde73d56c9.di

[clang] cfa578c - [Sema] add test cases for D152495 NFC

2023-08-31 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-08-31T14:17:41-07:00 New Revision: cfa578cde0314935c6eb5d7fa19ec26390d431dd URL: https://github.com/llvm/llvm-project/commit/cfa578cde0314935c6eb5d7fa19ec26390d431dd DIFF: https://github.com/llvm/llvm-project/commit/cfa578cde0314935c6eb5d7fa19ec26390d431dd.di

[clang] 91cdbd5 - clang: Switch C compilations to C17 by default.

2020-03-02 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2020-03-02T09:39:26-08:00 New Revision: 91cdbd521a38495c66e30636943563ca70d3c022 URL: https://github.com/llvm/llvm-project/commit/91cdbd521a38495c66e30636943563ca70d3c022 DIFF: https://github.com/llvm/llvm-project/commit/91cdbd521a38495c66e30636943563ca70d3c022.di

[clang] 51adeae - remove redundant LLVM version from version string when setting CLANG_VENDOR

2019-11-08 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2019-11-08T09:24:17-08:00 New Revision: 51adeae1c90c966f5ae7eb1aa8a380fcc7cd4806 URL: https://github.com/llvm/llvm-project/commit/51adeae1c90c966f5ae7eb1aa8a380fcc7cd4806 DIFF: https://github.com/llvm/llvm-project/commit/51adeae1c90c966f5ae7eb1aa8a380fcc7cd4806.di

[clang] 246398e - [clang][Parse] properly parse asm-qualifiers, asm inline

2020-03-12 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2020-03-12T15:13:59-07:00 New Revision: 246398ece7115b57a02dbe7876d86ae8e72406ef URL: https://github.com/llvm/llvm-project/commit/246398ece7115b57a02dbe7876d86ae8e72406ef DIFF: https://github.com/llvm/llvm-project/commit/246398ece7115b57a02dbe7876d86ae8e72406ef.di

[clang] 5d90f88 - [clang][AArch64] readd support for 'p' inline asm constraint

2020-03-17 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2020-03-17T10:51:25-07:00 New Revision: 5d90f886bc022e7c9144a0ef08ea7ccde7e66030 URL: https://github.com/llvm/llvm-project/commit/5d90f886bc022e7c9144a0ef08ea7ccde7e66030 DIFF: https://github.com/llvm/llvm-project/commit/5d90f886bc022e7c9144a0ef08ea7ccde7e66030.di

[clang] 8b9cb12 - [Driver] -pg -mfentry should respect target specific decisions for -mframe-pointer=all

2020-02-18 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2020-02-18T15:33:46-08:00 New Revision: 8b9cb120812449dbe67d2252ebf619c4c9cac816 URL: https://github.com/llvm/llvm-project/commit/8b9cb120812449dbe67d2252ebf619c4c9cac816 DIFF: https://github.com/llvm/llvm-project/commit/8b9cb120812449dbe67d2252ebf619c4c9cac816.di

[clang] 9ea912f - [diagtool] explain that yellow is used to denote disabled-by-default warnings

2023-03-27 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-03-27T09:41:30-07:00 New Revision: 9ea912fe978df3057a74542d9e22d871e2b899dd URL: https://github.com/llvm/llvm-project/commit/9ea912fe978df3057a74542d9e22d871e2b899dd DIFF: https://github.com/llvm/llvm-project/commit/9ea912fe978df3057a74542d9e22d871e2b899dd.di

[clang] 57c5c1a - [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-22 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-05-22T11:38:38-07:00 New Revision: 57c5c1ab2a188b7962c9de5ac0f95e3c7441940a URL: https://github.com/llvm/llvm-project/commit/57c5c1ab2a188b7962c9de5ac0f95e3c7441940a DIFF: https://github.com/llvm/llvm-project/commit/57c5c1ab2a188b7962c9de5ac0f95e3c7441940a.di

[clang] 804af93 - Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-23 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-05-23T14:41:46-07:00 New Revision: 804af933f7310f78d91e13ad8a13b64b00249614 URL: https://github.com/llvm/llvm-project/commit/804af933f7310f78d91e13ad8a13b64b00249614 DIFF: https://github.com/llvm/llvm-project/commit/804af933f7310f78d91e13ad8a13b64b00249614.di

[clang] 217709c - remove Demangle/StringView.h

2023-06-01 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-06-01T10:13:33-07:00 New Revision: 217709cbae34ec59ed366f6d77b5d612d2018245 URL: https://github.com/llvm/llvm-project/commit/217709cbae34ec59ed366f6d77b5d612d2018245 DIFF: https://github.com/llvm/llvm-project/commit/217709cbae34ec59ed366f6d77b5d612d2018245.di

[clang] 8dc1395 - [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-06-01 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-06-01T11:24:53-07:00 New Revision: 8dc13957cb1752b6a90e299d016e09bb98b0df54 URL: https://github.com/llvm/llvm-project/commit/8dc13957cb1752b6a90e299d016e09bb98b0df54 DIFF: https://github.com/llvm/llvm-project/commit/8dc13957cb1752b6a90e299d016e09bb98b0df54.di

[clang] b1bc723 - [Clang] refactor CodeGenFunction::EmitAsmStmt NFC

2023-02-16 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-02-16T17:58:34-08:00 New Revision: b1bc723dfe9734a8b3157dbf50328b5d62436bd6 URL: https://github.com/llvm/llvm-project/commit/b1bc723dfe9734a8b3157dbf50328b5d62436bd6 DIFF: https://github.com/llvm/llvm-project/commit/b1bc723dfe9734a8b3157dbf50328b5d62436bd6.di

[clang] 329ef60 - [Clang] support for outputs along indirect edges of asm goto

2023-02-16 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-02-16T17:58:34-08:00 New Revision: 329ef60f3e21fd6845e8e8b0da405cae7eb27267 URL: https://github.com/llvm/llvm-project/commit/329ef60f3e21fd6845e8e8b0da405cae7eb27267 DIFF: https://github.com/llvm/llvm-project/commit/329ef60f3e21fd6845e8e8b0da405cae7eb27267.di

[clang] 54186d3 - [clang] add __has_extension(gnu_asm_goto_with_outputs_full)

2023-02-16 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-02-16T17:58:35-08:00 New Revision: 54186d33c3a0d4834d2e5f95640b63677f5b5142 URL: https://github.com/llvm/llvm-project/commit/54186d33c3a0d4834d2e5f95640b63677f5b5142 DIFF: https://github.com/llvm/llvm-project/commit/54186d33c3a0d4834d2e5f95640b63677f5b5142.di

[clang] af66563 - [clang] fix -Wuninitialized for asm goto outputs on indirect edges.

2023-02-16 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-02-16T17:58:35-08:00 New Revision: af6656338db365fde6c0b0e53db8f98aa8ed59d4 URL: https://github.com/llvm/llvm-project/commit/af6656338db365fde6c0b0e53db8f98aa8ed59d4 DIFF: https://github.com/llvm/llvm-project/commit/af6656338db365fde6c0b0e53db8f98aa8ed59d4.di

[clang] 691c480 - [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-20 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-04-20T10:02:32-07:00 New Revision: 691c4800be8018d8ad03f0e25be3672acbdfe403 URL: https://github.com/llvm/llvm-project/commit/691c4800be8018d8ad03f0e25be3672acbdfe403 DIFF: https://github.com/llvm/llvm-project/commit/691c4800be8018d8ad03f0e25be3672acbdfe403.di

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-05-02T11:20:15-07:00 New Revision: c117c2c8ba4afd45a006043ec6dd858652b2ffcc URL: https://github.com/llvm/llvm-project/commit/c117c2c8ba4afd45a006043ec6dd858652b2ffcc DIFF: https://github.com/llvm/llvm-project/commit/c117c2c8ba4afd45a006043ec6dd858652b2ffcc.di

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-05-02T15:54:09-07:00 New Revision: 3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b URL: https://github.com/llvm/llvm-project/commit/3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b DIFF: https://github.com/llvm/llvm-project/commit/3e3c6f24ff85ea52ed67d4c26f1d3d0eacd1ad1b.di

cfe-commits@lists.llvm.org

2023-06-06 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-06-06T10:18:06-07:00 New Revision: 8abbc17ff3b1390581600d1b9b37888f4b8ba50e URL: https://github.com/llvm/llvm-project/commit/8abbc17ff3b1390581600d1b9b37888f4b8ba50e DIFF: https://github.com/llvm/llvm-project/commit/8abbc17ff3b1390581600d1b9b37888f4b8ba50e.di

[clang] 9daab7f - [ExprConstant] fix ICE from Evaluate on _Atomic structs

2023-06-08 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2023-06-08T13:20:24-07:00 New Revision: 9daab7fb02d2a7340dbc78d15d248ef9aaf1214c URL: https://github.com/llvm/llvm-project/commit/9daab7fb02d2a7340dbc78d15d248ef9aaf1214c DIFF: https://github.com/llvm/llvm-project/commit/9daab7fb02d2a7340dbc78d15d248ef9aaf1214c.di

[clang] [compiler-rt] [Sanitizer] add signed-integer-wrap sanitizer (PR #80089)

2024-02-14 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. I think this patch is good to go. Thanks for working on it! cc @AaronBallman @efriedma-quic @rjmccall @nikic in case there's any last minute concerns. I'm happy to sign off on this, but consider giving folks some time to speak up

[clang] [clang] Implement __builtin_popcountg (PR #82359)

2024-02-21 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers commented: Awesome, thanks! Don't forget to update https://clang.llvm.org/docs/LanguageExtensions.html#builtin-functions https://github.com/llvm/llvm-project/pull/82359 ___ cfe-commits mailing list cfe-commits@lists

[clang] [clang] Implement __builtin_popcountg (PR #82359)

2024-02-22 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: Perhaps worth rebasing then force pushing to this branch to rekick the build bots? Thanks for implementing this @overmighty ! There's a few more builtins like this that would simplify implementations of more C23 library additions. Let me know if you're interested in th

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-04 Thread Nick Desaulniers via cfe-commits
@@ -1980,6 +1981,23 @@ static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) { D->addAttr(::new (S.Context) WeakRefAttr(S.Context, AL)); } +// Mark alias/ifunc target as used. For C++, we look up the demangled name +// ignoring parameters. This should handle

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-04 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s nickdesaulniers wrote: consider using `git mv` when you rename files or move test cases. Makes it very obvious in code review when existing test cases are deleted vs moved

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers commented: Progressing in the right direction and I'm in favor of fixing this issue in clang, with similar levels of caution as my fellow reviewers. I think we can support Microsoft ABI mangling trivially here. That we mangle globals with static linkage in `e

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers edited https://github.com/llvm/llvm-project/pull/87130 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -1980,6 +1981,36 @@ static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) { D->addAttr(::new (S.Context) WeakRefAttr(S.Context, AL)); } +// Mark alias/ifunc target as used. Due to name mangling, we look up the +// demangled name ignoring parameters. This

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -1,7 +1,35 @@ -// RUN: %clang_cc1 -triple x86_64-linux-gnu -Wunneeded-internal-declaration -x c -verify %s +// RUN: %clang_cc1 -triple x86_64-linux-gnu -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple x86_64-linux-gnu -Wunused -x c++ -verify %s + +#ifdef __cplusplus +exter

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers edited https://github.com/llvm/llvm-project/pull/87130 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s nickdesaulniers wrote: > but git does not preserve file move history... Sure it does; isn't that the point of the `--follow` flag to `git log `? https://github.com/llvm/ll

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -1980,6 +1981,36 @@ static void handleWeakRefAttr(Sema &S, Decl *D, const ParsedAttr &AL) { D->addAttr(::new (S.Context) WeakRefAttr(S.Context, AL)); } +// Mark alias/ifunc target as used. Due to name mangling, we look up the +// demangled name ignoring parameters. This

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-05 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -triple %ms_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %ms_abi_triple -Wunused -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } // cxx-warning{{unused function 'f'}} +in

[clang] [libc] [llvm] Fix typos (PR #88565)

2024-04-12 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. https://github.com/llvm/llvm-project/pull/88565 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libc] [llvm] Fix typos (PR #88565)

2024-04-12 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: Thanks for the patch. Do you need one of us to merge this for you? https://github.com/llvm/llvm-project/pull/88565 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit

[clang] [libc] [llvm] Fix typos (PR #88565)

2024-04-12 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers closed https://github.com/llvm/llvm-project/pull/88565 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-12 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers edited https://github.com/llvm/llvm-project/pull/87130 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-12 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-12 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. LGTM; though I have a strong preference to get bugs on file and linked to regarding: - issues with non-itanium mangling - issues with namespaced identifiers. https://github.com/llvm/llvm-project/pull/87130 __

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-12 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,47 @@ +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %itanium_abi_triple -Wunused -x c++ -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } +int g(void) __attribut

[clang] [Sema] Mark alias/ifunc targets used and consider mangled names (PR #87130)

2024-04-12 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,27 @@ +// RUN: %clang_cc1 -triple %ms_abi_triple -Wunused -x c -verify %s +// RUN: %clang_cc1 -triple %ms_abi_triple -Wunused -verify=expected,cxx %s + +#ifdef __cplusplus +extern "C" { +#endif +static int f(void) { return 42; } // cxx-warning{{unused function 'f'}} +in

[clang] [clang][CodeGen][NFC] Make ConstExprEmitter a ConstStmtVisitor (PR #89041)

2024-04-22 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. https://github.com/llvm/llvm-project/pull/89041 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [llvm] [X86] Support EGPR for inline assembly. (PR #92338)

2024-05-21 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,19 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: not llc -mtriple=x86_64 %s 2>&1 | FileCheck %s --check-prefix=ERR +; RUN: llc -mtriple=x86_64 -mattr=+egpr < %s | FileCheck %s --check-prefix=EGPR +; RUN: llc -mtriple=x86_64

[clang] [llvm] [X86] Support EGPR for inline assembly. (PR #92338)

2024-05-21 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,29 @@ +; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py +; RUN: not llc -mtriple=x86_64 < %s 2>&1 | FileCheck %s --check-prefix=ERR +; RUN: not llc -mtriple=x86_64 -mattr=+egpr < %s 2>&1 | FileCheck %s --check-prefix=ERR +; RUN: llc -mtripl

[clang] [llvm] [X86] Support EGPR for inline assembly. (PR #92338)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -58016,15 +58035,27 @@ X86TargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI, break; case 'r': // GENERAL_REGS case 'l': // INDEX_REGS + if (Subtarget.useInlineAsmGPR32()) { +if (VT == MVT::i8 || VT == MVT::i1) +

[clang] [llvm] [PowerPC] Support -fpatchable-function-entry (PR #92997)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -0,0 +1,4 @@ +// RUN: %clang_cc1 -triple powerpc64-ibm-aix-xcoff -fsyntax-only -verify %s + +// expected-error@+1 {{'patchable_function_entry' attribute is not yet supported on AIX}} +__attribute__((patchable_function_entry(0))) void f(); nickdesaulniers wrote

[clang] [llvm] [PowerPC] Support -fpatchable-function-entry (PR #92997)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -909,6 +909,24 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) { // Lower multi-instruction pseudo operations. switch (MI->getOpcode()) { default: break; + case TargetOpcode::PATCHABLE_FUNCTION_ENTER: { +assert(!Subtarget->isAIXABI() && +

[clang] [llvm] [PowerPC] Support -fpatchable-function-entry (PR #92997)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -909,6 +909,24 @@ void PPCAsmPrinter::emitInstruction(const MachineInstr *MI) { // Lower multi-instruction pseudo operations. switch (MI->getOpcode()) { default: break; + case TargetOpcode::PATCHABLE_FUNCTION_ENTER: { +assert(!Subtarget->isAIXABI() && +

[clang] [Clang] [CodeGen] Perform derived-to-base conversion on explicit object parameter in lambda (PR #89828)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -4693,6 +4694,17 @@ LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field, else LambdaLV = MakeAddrLValue(AddrOfExplicitObject, D->getType().getNonReferenceType()); + +// Make sure we have an lvalue to the lamb

[clang] [Clang] [CodeGen] Perform derived-to-base conversion on explicit object parameter in lambda (PR #89828)

2024-05-22 Thread Nick Desaulniers via cfe-commits
@@ -4693,6 +4694,17 @@ LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field, else LambdaLV = MakeAddrLValue(AddrOfExplicitObject, D->getType().getNonReferenceType()); + +// Make sure we have an lvalue to the lamb

[clang] [llvm] [X86] Support EGPR for inline assembly. (PR #92338)

2024-05-23 Thread Nick Desaulniers via cfe-commits
https://github.com/nickdesaulniers approved this pull request. someone with more knowledge about EGPR should approve this as well, but I'm happy with the code style for the additions. https://github.com/llvm/llvm-project/pull/92338 ___ cfe-commits mai

[clang] ea8416b - [CodeGenOptions] make StackProtectorGuardOffset signed

2021-04-27 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-04-27T10:12:58-07:00 New Revision: ea8416bf4df4e2823d85d50d8ddd69dd8ed54720 URL: https://github.com/llvm/llvm-project/commit/ea8416bf4df4e2823d85d50d8ddd69dd8ed54720 DIFF: https://github.com/llvm/llvm-project/commit/ea8416bf4df4e2823d85d50d8ddd69dd8ed54720.di

[clang] aefbfbc - [Clang] remove text extension from diag::err_drv_invalid_value_with_suggestion

2021-05-05 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-05-05T11:01:43-07:00 New Revision: aefbfbcbd776f5549b18cd6083d6408f661efacc URL: https://github.com/llvm/llvm-project/commit/aefbfbcbd776f5549b18cd6083d6408f661efacc DIFF: https://github.com/llvm/llvm-project/commit/aefbfbcbd776f5549b18cd6083d6408f661efacc.di

[clang] 3a604fd - [Clang][CFG] check children statements of asm goto

2022-01-07 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2022-01-07T14:11:08-08:00 New Revision: 3a604fdbcd5fd9ca41f6659692bb4ad2151c3cf4 URL: https://github.com/llvm/llvm-project/commit/3a604fdbcd5fd9ca41f6659692bb4ad2151c3cf4 DIFF: https://github.com/llvm/llvm-project/commit/3a604fdbcd5fd9ca41f6659692bb4ad2151c3cf4.di

[clang] c8463fd - [clang][CGStmt] emit i constraint rather than X for asm goto indirect dests

2022-01-11 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2022-01-11T11:48:40-08:00 New Revision: c8463fd22b1ff05c0273e7f446c9feeb114c3798 URL: https://github.com/llvm/llvm-project/commit/c8463fd22b1ff05c0273e7f446c9feeb114c3798 DIFF: https://github.com/llvm/llvm-project/commit/c8463fd22b1ff05c0273e7f446c9feeb114c3798.di

[clang] 5c562f6 - [clang] number labels in asm goto strings after tied inputs

2022-01-11 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2022-01-11T12:09:24-08:00 New Revision: 5c562f62a4ee15592f5d764d0710553a4b07a6f2 URL: https://github.com/llvm/llvm-project/commit/5c562f62a4ee15592f5d764d0710553a4b07a6f2 DIFF: https://github.com/llvm/llvm-project/commit/5c562f62a4ee15592f5d764d0710553a4b07a6f2.di

[clang] 73ee4e1 - [clang][ARM] only check -mtp=cp15 for non-asm sources

2021-12-06 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-12-06T11:31:23-08:00 New Revision: 73ee4e1cbd643028d63200f05199a128609aba5f URL: https://github.com/llvm/llvm-project/commit/73ee4e1cbd643028d63200f05199a128609aba5f DIFF: https://github.com/llvm/llvm-project/commit/73ee4e1cbd643028d63200f05199a128609aba5f.di

[clang] cd284b7 - [clang][ARM] re-use arm::isHardTPSupported for hardware TLS check

2021-12-28 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-12-28T13:28:34-08:00 New Revision: cd284b7ac0615afc6e0f1a30da2777e361de27a3 URL: https://github.com/llvm/llvm-project/commit/cd284b7ac0615afc6e0f1a30da2777e361de27a3 DIFF: https://github.com/llvm/llvm-project/commit/cd284b7ac0615afc6e0f1a30da2777e361de27a3.di

[clang] bf2479c - Revert "Add support to -Wa,--version in clang"

2021-03-31 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-03-31T17:02:13-07:00 New Revision: bf2479c347c8ca88fefdb144d8bae0a7a4231e2a URL: https://github.com/llvm/llvm-project/commit/bf2479c347c8ca88fefdb144d8bae0a7a4231e2a DIFF: https://github.com/llvm/llvm-project/commit/bf2479c347c8ca88fefdb144d8bae0a7a4231e2a.di

[clang] 0a23fbd - clang: Always pass PowerPC endian information to GNU as

2021-01-11 Thread Nick Desaulniers via cfe-commits
Author: Nathan Chancellor Date: 2021-01-11T14:50:28-08:00 New Revision: 0a23fbd28c7509f2f980946091e6055bf27164d2 URL: https://github.com/llvm/llvm-project/commit/0a23fbd28c7509f2f980946091e6055bf27164d2 DIFF: https://github.com/llvm/llvm-project/commit/0a23fbd28c7509f2f980946091e6055bf27164d2.d

[clang] 846e562 - [Clang] add support for error+warning fn attrs

2021-08-25 Thread Nick Desaulniers via cfe-commits
Author: Nick Desaulniers Date: 2021-08-25T10:34:18-07:00 New Revision: 846e562dcc6a9a611d844dc0d123da95629a0567 URL: https://github.com/llvm/llvm-project/commit/846e562dcc6a9a611d844dc0d123da95629a0567 DIFF: https://github.com/llvm/llvm-project/commit/846e562dcc6a9a611d844dc0d123da95629a0567.di

[clang] [libc] [llvm] [libc] Implement (v|f)printf on the GPU (PR #96369)

2024-06-25 Thread Nick Desaulniers via cfe-commits
nickdesaulniers wrote: > Do we want some sort of optimization for constant printf? 99% of the time, we > could parse the string at compile-time. (This sort of optimization is common > for embedded targets.) Yes! @michaelrj-google has some ideas. Orthogonal to this PR though. https://github.co

[clang] [Driver] Support using toolchain libc and libc++ for baremetal (PR #96736)

2024-06-26 Thread Nick Desaulniers via cfe-commits
@@ -296,6 +300,47 @@ void BareMetal::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, return; const Driver &D = getDriver(); + std::string Target = getTripleString(); + + auto AddCXXIncludePath = [&](StringRef Path) { +std::string Version = detectLibcxxVers

[clang] [Driver] Support using toolchain libc and libc++ for baremetal (PR #96736)

2024-06-26 Thread Nick Desaulniers via cfe-commits
@@ -296,6 +300,47 @@ void BareMetal::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, return; const Driver &D = getDriver(); + std::string Target = getTripleString(); + + auto AddCXXIncludePath = [&](StringRef Path) { +std::string Version = detectLibcxxVers

<    1   2   3   4   5   >