[PATCH] D151148: [clang][ExprConstant] fix __builtin_object_size for compound literal

2023-05-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: efriedma, erichkeane. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Fixup to D150892 .

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:11740 + LVal.getLValueBase().dyn_cast()); + Result += VD->getFlexibleArrayInitChars(Info.Ctx); +} efriedma wrote: > nickdesaulniers wrote: > > efriedma wrote: > >

[PATCH] D150841: [IR] Make stack protector symbol dso_local according to -f[no-]direct-access-external-data

2023-05-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. This also resolves https://github.com/llvm/llvm-project/issues/62482; was that intentional? If so, consider adding a link to https://github.com/llvm/llvm-project/issues/62482

[PATCH] D151148: [clang][ExprConstant] fix __builtin_object_size for compound literal

2023-05-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 524532. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - more dyn_cast Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151148/new/ https://reviews.llvm.org/D151148 Fil

[PATCH] D151148: [clang][ExprConstant] fix __builtin_object_size for compound literal

2023-05-22 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:11737 bool Ret = HandleSizeof(Info, ExprLoc, Ty, Result); if (Ty->isStructureType() && Ty->getAsStructureType()->getDecl()->hasFlexibleArrayMember()) { efriedma w

[PATCH] D150892: Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 524787. nickdesaulniers retitled this revision from "[clang][ExprConstant] fix __builtin_object_size for flexible array members" to "Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array members". nickdesaulniers added a comment.

[PATCH] D151148: [clang][ExprConstant] fix __builtin_object_size for compound literal

2023-05-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers marked 2 inline comments as done. nickdesaulniers added a comment. Merged into https://reviews.llvm.org/D150892. Comment at: clang/lib/AST/ExprConstant.cpp:11737 bool Ret = HandleSizeof(Info, ExprLoc, Ty, Result);

[PATCH] D150892: Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-23 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 524791. nickdesaulniers added a comment. - prefer OBJECT_SIZE_BUILTIN to __builtin_object_size to additionally test __dynamic_builtin_object_size Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new

[PATCH] D150892: Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-23 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG804af933f731: Reland: [clang][ExprConstant] fix __builtin_object_size for flexible array… (authored by nickdesaulniers). Repository: rG LLVM Githu

[PATCH] D76096: [clang] allow const structs to be constant expressions in initializer lists

2023-05-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. So, @rsmith are you ok with a patch like https://reviews.llvm.org/D76169 that removes those fixmes? It makes sense to me that `const int foo[] = [ ...massive list...];` would take long to validate the entire initializer as all constant expressions, but I'm simp

[PATCH] D151572: [clang][ConstantEmitter] have tryEmitPrivate try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. As suggested by @efriedma in: https://reviews.llvm.org/D76096#4370369 Some minor code style fixes as well i

[PATCH] D151572: [clang][ConstantEmitter] have tryEmitPrivate try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 526131. nickdesaulniers added a comment. - one more style update Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151572/new/ https://reviews.llvm.org/D151572 Files: clang/lib/CodeGen/CGExprConstant.cpp

[PATCH] D151572: [clang][ConstantEmitter] have tryEmitPrivate try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D151572#4376697 , @efriedma wrote: > Did you intentionally skip moving the ConstExprEmitter call in > tryEmitPrivateForVarInit? (VarDecl::evaluateValue calls the constant > evaluator.) Yes, I'll do that in a follow

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. As suggested by @efriedma in: https://reviews.llvm.org/D76096#4370369 Signed-off-by: Nick Desaulniers Re

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 526192. nickdesaulniers added a comment. - also remove VisitExprWithCleanups, down to two outstanding test failures Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/ https://reviews.llvm.org/D15

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 526195. nickdesaulniers added a comment. Herald added subscribers: kerbowa, jvesely. - one more test fix Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/ https://reviews.llvm.org/D151587 Files

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-05-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 526210. nickdesaulniers added a comment. - fix string literals; still WIP Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/ https://reviews.llvm.org/D151587 Files: clang/lib/CodeGen/CGExprCon

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-05-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. nickdesaulniers added reviewers: erichkeane, aaron.ballman. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Provide an example of how to use this extension

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-05-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 526703. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - fixup last sentence as per @erichkeane Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151732/new/ https://revi

[PATCH] D144654: [Lex] Warn when defining or undefining any builtin macro

2023-05-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D144654#4380488 , @john.brawn wrote: > gcc has the same warning so I wasn't expecting this cause to change problems, > but looking more closely at gcc's behaviour it looks like it only warns for > some builtin macros

[PATCH] D151741: [Lex] Only warn on defining or undefining language-defined builtins

2023-05-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Preprocessor/macro-reserved.c:19 #undef __STDC_HOSTED__ // expected-warning {{undefining builtin macro}} +#undef __INT32_TYPE__ Please add tests for the rest of https://reviews.llvm.org/D144654#4381

[PATCH] D151741: [Lex] Only warn on defining or undefining language-defined builtins

2023-05-30 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Lex/PPDirectives.cpp:163-172 + // C defines macros starting with __STDC, and C++ defines macros starting with + // __STDCPP + if (MacroName.startswith("__STDC")) +return true; + // C++ defines the __cplusplus m

[PATCH] D151741: [Lex] Only warn on defining or undefining language-defined builtins

2023-05-31 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Preprocessor/macro-reserved.c:22 +#undef __UINTPTR_TYPE__ +#undef __i386__ +#undef __UINT64_TYPE__ This line wont have coverage unless the RUN line sets `-m32` (even then, an explicit triple would be

[PATCH] D148387: remove Demangle/StringView.h

2023-05-31 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527132. nickdesaulniers added a comment. - rebase for presubmit testing Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148387/new/ https://reviews.llvm.org/D148387 Files: clang/docs/tools/clang-format

[PATCH] D151741: [Lex] Only warn on defining or undefining language-defined builtins

2023-05-31 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Preprocessor/init-x86.c:1728-1741 +// RUN: %clang_cc1 -triple=i386-none-none -fsyntax-only -verify -DUNDEF %s +// RUN: %clang_cc1 -triple=i686-none-none -fsyntax-only -verify -DUNDEF %s +// RUN: %clang_cc1 -triple=x86_

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-05-31 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D151741: [Lex] Only warn on defining or undefining language-defined builtins

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Thanks for the patch! Comment at: clang/test/Preprocessor/undef-x86.c:2 +// RUN: %clang_cc1 -triple=i386-none-none -fsyntax-only -verify %s +// RUN: %clang_

[PATCH] D148387: remove Demangle/StringView.h

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG217709cbae34: remove Demangle/StringView.h (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D148387/new/ https://reviews.llvm.org

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527528. nickdesaulniers added a comment. - add note about function signature Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151732/new/ https://reviews.llvm.org/D151732 Files: clang/include/clang/Basi

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527535. nickdesaulniers added a comment. - add note about reverse declaration order for variables declared in the same scope Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151732/new/ https://reviews.ll

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527536. nickdesaulniers added a comment. - rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151732/new/ https://reviews.llvm.org/D151732 Files: clang/include/clang/Basic/Attr.td clang/include/c

[PATCH] D151732: [clang][docs] document __attribute__((cleanup())) GNU C extension

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG8dc13957cb17: [clang][docs] document __attribute__((cleanup())) GNU C extension (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527924. nickdesaulniers edited the summary of this revision. nickdesaulniers added a comment. - just failing clang/test/CodeGenCXX/atomicinit.cpp Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527925. nickdesaulniers added a comment. - remove commented out code, still WIP Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/ https://reviews.llvm.org/D151587 Files: clang/lib/CodeGen/CGE

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 527978. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - remove unnecessary Visit*CastExpr overrides Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D151587/new/ https:/

[PATCH] D142609: [Clang] Fix -Wconstant-logical-operand when LHS is a constant

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. I did kernel builds of x86_64 and aarch64 defconfigs. This found new instance: https://github.com/ClangBuiltLinux/linux/issues/1806 which looks like something we can fix in the kernel sources. Our CI will probably find more instances once this lands, but I'm happ

[PATCH] D142609: [Clang] Fix -Wconstant-logical-operand when LHS is a constant

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Hmm...looking at some of the commits to the related code, it might be very intentional that we don't warn symmetrically: 938533db602b32ab435078e723b656ac6e779a1b e54ff6cc3e479523b71e4c7eb4bd13707d84de0f Comment at: clang/test/SemaCXX/expressio

[PATCH] D142609: [Clang] Fix -Wconstant-logical-operand when LHS is a constant

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/SemaCXX/expressions.cpp:146-148 #define Y2 2 bool r2 = X || Y2; // expected-warning {{use of logical '||' with constant operand}} \ // expected-note {{use '|' for a bitwise operation}}

[PATCH] D137113: [Clang] refactor CodeGenFunction::EmitAsmStmt NFC

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 498156. nickdesaulniers added a comment. - final rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137113/new/ https://reviews.llvm.org/D137113 Files: clang/lib/CodeGen/CGStmt.cpp Index: clang/li

[PATCH] D136497: [Clang] support for outputs along indirect edges of asm goto

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 498157. nickdesaulniers added a comment. - final rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D136497/new/ https://reviews.llvm.org/D136497 Files: clang/docs/LanguageExtensions.rst clang/doc

[PATCH] D140508: [clang] fix -Wuninitialized for asm goto outputs on indirect edges.

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 498158. nickdesaulniers added a comment. - final rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D140508/new/ https://reviews.llvm.org/D140508 Files: clang/lib/Analysis/UninitializedValues.cpp

[PATCH] D143205: [clang] add __has_extension(gnu_asm_goto_with_outputs_full)

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 498159. nickdesaulniers added a comment. - final rebase Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143205/new/ https://reviews.llvm.org/D143205 Files: clang/docs/LanguageExtensions.rst clang/inc

[PATCH] D137113: [Clang] refactor CodeGenFunction::EmitAsmStmt NFC

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 498209. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - fix bugprone-argument-comment as per @shafik Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D137113/new/ https:

[PATCH] D137113: [Clang] refactor CodeGenFunction::EmitAsmStmt NFC

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rGb1bc723dfe97: [Clang] refactor CodeGenFunction::EmitAsmStmt NFC (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE

[PATCH] D136497: [Clang] support for outputs along indirect edges of asm goto

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG329ef60f3e21: [Clang] support for outputs along indirect edges of asm goto (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D13649

[PATCH] D143205: [clang] add __has_extension(gnu_asm_goto_with_outputs_full)

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rG54186d33c3a0: [clang] add __has_extension(gnu_asm_goto_with_outputs_full) (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D143205

[PATCH] D140508: [clang] fix -Wuninitialized for asm goto outputs on indirect edges.

2023-02-16 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rGaf6656338db3: [clang] fix -Wuninitialized for asm goto outputs on indirect edges. (authored by nickdesaulniers). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org

[PATCH] D150632: [IR] Adds Instruction::setNoSanitizeMetadata()

2023-05-16 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/SanitizerMetadata.cpp:105-107 void SanitizerMetadata::disableSanitizerForInstruction(llvm::Instruction *I) { - I->setMetadata(llvm::LLVMContext::MD_nosanitize, - llvm::MDNode::get(CGM.getLLVMCo

[PATCH] D150891: [Clang] precommit test

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. Add test case demonstrating issue. Link: https://github.com/llvm/llvm-project/issues/62789 Repository:

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers created this revision. Herald added a project: All. nickdesaulniers requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. As reported by @kees, GCC treats __builtin_object_size of structures containing flexible array members (aka

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:11740 + LVal.getLValueBase().dyn_cast()); + Result += VD->getFlexibleArrayInitChars(Info.Ctx); +} erichkeane wrote: > Isn't this a possible null-deref? I don't t

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523470. nickdesaulniers added a comment. - use stronger casts, combine patches Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 Files: clang/lib/AST/ExprCons

[PATCH] D150891: [Clang] precommit test

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers abandoned this revision. nickdesaulniers added a comment. Merged into D150892 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150891/new/ https://reviews.llvm.org/D150891 ___

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:11740 + LVal.getLValueBase().dyn_cast()); + Result += VD->getFlexibleArrayInitChars(Info.Ctx); +} erichkeane wrote: > nickdesaulniers wrote: > > erichkeane wrote:

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/AST/ExprConstant.cpp:11740 + LVal.getLValueBase().dyn_cast()); + Result += VD->getFlexibleArrayInitChars(Info.Ctx); +} nickdesaulniers wrote: > erichkeane wrote: > > nickdesaulniers wr

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523476. nickdesaulniers added a comment. - add release note Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 Files: clang/docs/ReleaseNotes.rst clang/lib/A

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523478. nickdesaulniers added a comment. - add release note on bugfix Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 Files: clang/docs/ReleaseNotes.rst c

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523480. nickdesaulniers added a comment. - moar tests Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 Files: clang/docs/ReleaseNotes.rst clang/lib/AST/Exp

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523484. nickdesaulniers added a comment. - slightly reword bug fix release note Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 Files: clang/docs/ReleaseNot

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Sure, thanks for the quick turnaround time on reviews! 🍻 Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 ___ cfe-commits mailin

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. This also changes the behavior of `__builtin_dynamic_object_size` (see @kees ' full example: https://github.com/llvm/llvm-project/issues/62789#issue-1714764560). s/changes/fixes/. Let me add more tests and notes about that. Repository: rG LLVM Github Monorep

[PATCH] D150892: [clang][ExprConstant] fix __builtin_object_size for flexible array members

2023-05-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 523492. nickdesaulniers added a comment. - test __builtin_dynamic_object_size too, add that to release notes Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D150892/new/ https://reviews.llvm.org/D150892 F

[PATCH] D148381: [WIP][Clang] Add element_count attribute

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Cool! How about some codegen tests? This looks a lot like the EuroLLVM keynote: https://llvm.swoogo.com/2023eurollvm/agenda (Thursday `-fbounds-safety`). What's your plan for reconciling this with the authors of that? Have you reached out to them with this pro

[PATCH] D148385: [RISCV] Implement KCFI operand bundle lowering for RV64

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/lib/Target/RISCV/RISCVKCFI.cpp:106-107 + for (MachineBasicBlock &MBB : MF) { +for (MachineBasicBlock::instr_iterator MII = MBB.instr_begin(), + MIE = MBB.instr_end(); +

[PATCH] D148385: [RISCV] Implement KCFI operand bundle lowering for RV64

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp:299-300 + ++NextReg; +Reg = NextReg++; +if (Reg > RISCV::X31) + report_fatal_error("Unable to find scratch registers for KCFI_CHECK"); if (++NextReg > R

[PATCH] D148381: [WIP][Clang] Add element_count attribute

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExpr.cpp:951-952 +if (auto *ME = dyn_cast(CE->getSubExpr())) { + if (ME->isFlexibleArrayMemberLike(CGF.getContext(), +StrictFlexArraysLevel, true)) { +i

[PATCH] D148387: remove Demangle/StringView.h

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 514405. nickdesaulniers retitled this revision from "[RFC] remove Demangle/StringView.h" to "remove Demangle/StringView.h". nickdesaulniers edited the summary of this revision. nickdesaulniers added a comment. Herald added a project: clang. Herald adde

[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-17 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 514410. nickdesaulniers added a comment. Herald added a project: clang. Herald added a subscriber: cfe-commits. - add new file to clang/docs/tools/clang-formatted-files.txt Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://re

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-04-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 514746. nickdesaulniers marked 3 inline comments as done. nickdesaulniers added a comment. - rebase, invert inlining reporting chain, update diagnostic text Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-04-18 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/include/clang/Basic/DiagnosticFrontendKinds.td:94 +def note_fe_backend_in : Note<"In function '%0'">; +def note_fe_backend_inlined : Note<"\twhich inlined function '%0'">; erichkeane wrote: > This tab in

[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-19 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 515083. nickdesaulniers edited the summary of this revision. nickdesaulniers added a comment. - use @Maskray's recommended commit description, thanks @Maskray! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.or

[PATCH] D148556: [libcxxabi][demangle] create helper for std::string_view::starts_with

2023-04-20 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG691c4800be80: [libcxxabi][demangle] create helper for std::string_view::starts_with (authored by nickdesaulniers). Repository: rG LLVM Github Mono

cfe-commits@lists.llvm.org

2023-04-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 516580. nickdesaulniers marked an inline comment as done. nickdesaulniers retitled this revision from "[Demangle] use moar std::string_view" to "[Demangle] make llvm::demangle take std::string_view rather than const std::string&". nickdesaulniers edit

cfe-commits@lists.llvm.org

2023-04-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: lld/COFF/Symbols.cpp:43 if (demangled != demangleInput) - return prefix + demangle(demangleInput.str()); + return prefix + demangle(demangleInput); return (prefix + prefixless).str(); probably

cfe-commits@lists.llvm.org

2023-04-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: lld/ELF/Symbols.cpp:50 +std::string root = symName.str(); +return demangle(root); + } MaskRay wrote: > `return demangle(symName.str());` > > perhaps `return demangle(symName);` works as well? > perhaps

cfe-commits@lists.llvm.org

2023-04-24 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 516582. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - fix typos - simplify maybeDemangleSymbol in lld COFF - restore maybeDemangleSymbol Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https:/

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-04-25 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Herald added a subscriber: hoy. Ping for review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141451/new/ https://reviews.llvm.org/D141451 ___ cfe-commits mailing list cf

[PATCH] D149123: [AArch64][InlineAsm]Add Clang support for flag output constraints

2023-04-25 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Basic/Targets/AArch64.cpp:1216 +// Returns the length of cc constraint. +static unsigned matchAsmCCConstraint(const char *&Name) { + constexpr unsigned len = 5; davidxl wrote: > Name is not modified in

[PATCH] D149123: [AArch64][InlineAsm]Add Clang support for flag output constraints

2023-04-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Thanks for the patch! CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149123/new/ https://reviews.llvm.org/D149123 ___ cfe

[PATCH] D149274: [NFC][Clang]Remove a reference on argument since 'Name' is not modified'

2023-04-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Thanks for the patch! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149274/new/ https://reviews.llvm.org/D149274

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-04-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 517358. nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. - rebase - use llvm::enumerate Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D141451/new/ https://reviews.llvm.o

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-04-26 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Frontend/backend-attribute-error-warning-optimize.c:12 foo(); // expected-error {{call to 'foo' declared with 'error' attribute: oh no foo}} + // expected-note@* {{In function 'baz'}} if (x()) --

[PATCH] D148381: [WIP][Clang] Add element_count attribute

2023-04-28 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/include/clang/Basic/Attr.td:4170 +private: + mutable SmallVector CountFieldRanges; +public: `mutable`...my least favorite keyword in C++. If you drop `const` from `addCountFieldSourceRange` t

[PATCH] D141451: [clang] report inlining decisions with -Wattribute-{warning|error}

2023-05-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/test/Frontend/backend-attribute-error-warning-optimize.c:12 foo(); // expected-error {{call to 'foo' declared with 'error' attribute: oh no foo}} + // expected-note@* {{In function 'baz'}} if (x()) --

cfe-commits@lists.llvm.org

2023-05-01 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. bumping for review Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D149104/new/ https://reviews.llvm.org/D149104 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers marked an inline comment as done. nickdesaulniers added a comment. Thanks for the review! Comment at: llvm/docs/ReleaseNotes.rst:289 +* ``llvm::demangle`` now takes a ``std::string_view`` rather than a + ``const std::string&``. Be careful passing temporaries

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via Phabricator via cfe-commits
This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. nickdesaulniers marked an inline comment as done. Closed by commit rGc117c2c8ba4a: [Demangle] make llvm::demangle take std::string_view rather than const std… (authored

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. Looks like this is causing a regression in lld/test/wasm/why-extract.s when `-DLLVM_ENABLE_EXPENSIVE_CHECKS=ON` is enabled. I'm looking into it and hoping to fix forward by EOD. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.

cfe-commits@lists.llvm.org

2023-05-02 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a comment. In D149104#4313210 , @nickdesaulniers wrote: > Looks like this is causing a regression in lld/test/wasm/why-extract.s when > `-DLLVM_ENABLE_EXPENSIVE_CHECKS=ON` is enabled. I'm looking into it and > hoping to fix forwar

[PATCH] D152180: [Sema] Do not emit -Wunused-variable for variables declared with cleanup attribute

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. Thanks for the patch! Comment at: clang/test/Sema/warn-unused-variables.c:35 +void c1(int *); +int f4(void) { + int __attribute__((cleanup(c1))) X1 = 4; `void` return type Repository:

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D152186: [Clang] Add release note for 877210faa447

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers accepted this revision. nickdesaulniers added a comment. This revision is now accepted and ready to land. Thanks for the patch! Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D152186/new/ https://reviews.llvm.org/D152186

[PATCH] D152034: [clang][NFC] refactors value type traits so we can have more than bools

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/Sema/SemaExprCXX.cpp:5591-5594 + default: +llvm_unreachable("reached the end of BuildTypeTrait because the type " + "trait's type is unaccounted for"); + } ``` llvm-project/cla

[PATCH] D152034: [clang][NFC] refactors value type traits so we can have more than bools

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added a subscriber: kazu. nickdesaulniers added inline comments. Comment at: clang/lib/Sema/SemaExprCXX.cpp:5591-5594 + default: +llvm_unreachable("reached the end of BuildTypeTrait because the type " + "trait's type is unaccounted for");

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers added inline comments. Comment at: clang/lib/CodeGen/CGExprConstant.cpp:1324 // This is a string literal initializing an array in an initializer. -return CGM.GetConstantArrayFromStringLiteral(E); +return E->isLValue() ? + CGM.GetAddrOfConstantStr

[PATCH] D151587: [clang][ConstantEmitter] have tryEmitPrivateForVarInit try ConstExprEmitter fast-path first

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 528571. nickdesaulniers added a comment. - recursively check for MaterializeTemporaryExpr from InitListExprs; all tests pass (that doesn't imply this patch is good though!) Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://r

cfe-commits@lists.llvm.org

2023-06-05 Thread Nick Desaulniers via Phabricator via cfe-commits
nickdesaulniers updated this revision to Diff 528599. nickdesaulniers retitled this revision from "[Demangle] make llvm::demangle take std::string_view rather than const std::string&" to "reland: [Demangle] make llvm::demangle take std::string_view rather than const std::string&". nickdesaulniers

<    9   10   11   12   13   14   15   16   >