[clang] [Clang] Fix warning for non std functions with name `infinity` (PR #123417)

2025-01-20 Thread Shafik Yaghmour via cfe-commits
@@ -48,24 +48,49 @@ namespace std __attribute__((__visibility__("default"))) { isnan(double __x); bool isnan(long double __x); -bool + bool isfinite(float __x); bool isfinite(double __x); bool isfinte(long double __x); - bool + bool isunordered(float _

[clang] [Clang] No longer require complete types with __builtin_launder (PR #91070)

2025-01-21 Thread Shafik Yaghmour via cfe-commits
shafik wrote: I would like to see some more compelling motivation for an extension here. https://github.com/llvm/llvm-project/pull/91070 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit

[clang] [clang][ExprConst] Let diagnostics point to std::allocator calls (PR #123744)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
@@ -1155,7 +1156,7 @@ namespace { if (CTSD->isInStdNamespace() && ClassII && ClassII->isStr("allocator") && TAL.size() >= 1 && TAL[0].getKind() == TemplateArgument::Type) - return {Call->Index, TAL[0].getAsType()}; + return {Cal

[clang] [clang][ExprConst] Let diagnostics point to std::allocator calls (PR #123744)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/123744 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][ExprConst] Let diagnostics point to std::allocator calls (PR #123744)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thanks, this would be an improvement but I have one concern with this change. https://github.com/llvm/llvm-project/pull/123744 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/m

[clang] [clang] Track source deduction guide for alias template deduction guides (PR #123875)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
@@ -2290,18 +2290,21 @@ CXXDeductionGuideDecl *CXXDeductionGuideDecl::Create( ASTContext &C, DeclContext *DC, SourceLocation StartLoc, ExplicitSpecifier ES, const DeclarationNameInfo &NameInfo, QualType T, TypeSourceInfo *TInfo, SourceLocation EndLocation, CXXConstr

[clang] [clang] Track source deduction guide for alias template deduction guides (PR #123875)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
@@ -8147,6 +8149,26 @@ TEST_P(ImportFunctions, CTADWithLocalTypedef) { ASSERT_TRUE(ToD); } +TEST_P(ImportFunctions, CTADAliasTemplate) { + Decl *TU = getTuDecl( + R"( + template struct A { +A(T); + }; + template + using B = A; + B b{(i

[clang] [clang] Track source deduction guide for alias template deduction guides (PR #123875)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/123875 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Track source deduction guide for alias template deduction guides (PR #123875)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I know you have approvals but you should expand the tests first. https://github.com/llvm/llvm-project/pull/123875 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listin

[clang] [Clang][Sema] Reject declaring an alias template with the same name as its template parameter. (PR #123533)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: when the discussion is eventually resolved please add a more detailed summary explaining how the fix is implemented and why. These go in the git log and it is important for relevant details to show up there w/o the need for git show etc https://github.com/

[clang] [Clang] use constant evaluation context for constexpr if conditions (PR #123667)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik requested changes to this pull request. Please add a more detailed summary to this PR. I have asked this on several PRs and I believe the confusion reflected in the comments is very much attributed to not explaining why you believe your fix works. It may be incorrect b

[clang] [Clang][Sema] Reject declaring an alias template with the same name as its template parameter. (PR #123533)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
@@ -13464,6 +13464,14 @@ Decl *Sema::ActOnAliasDeclaration(Scope *S, AccessSpecifier AS, } TemplateParameterList *TemplateParams = TemplateParamLists[0]; +// Check shadowing of a template parameter name +for (NamedDecl *TP : TemplateParams->asArray()) { +

[clang] [compiler-rt] [Clang] Make `-Wreturn-type` default to an error in all language modes (PR #123470)

2025-01-22 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I see a lot of diagnostics were updated to `DefaultError` but I don't see matching tests that demonstrate the now error. We should be testing each diagnostic. https://github.com/llvm/llvm-project/pull/123470 ___

[clang] [clang] Return larger CXX records in memory (PR #120670)

2025-01-24 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Shouldn't this have some sort of Release not maybe under the X86 section? https://github.com/llvm/llvm-project/pull/120670 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailm

[clang] [Clang] Added nullptr check to getFriendDecl access (PR #121056)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: LGTM but I will let @cor3ntin give the accept https://github.com/llvm/llvm-project/pull/121056 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
@@ -0,0 +1,11 @@ +// RUN: %clang_cc1 -std=c++2c -verify -fsyntax-only %s + +template +void decompose_array() { + int arr[4] = {1, 2, 3, 5}; + auto [x, ... // #1 +rest, ...more_rest] = arr; // expected-error{{multiple packs in structured binding declaration}} +

[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thank you for the PR, small comments. https://github.com/llvm/llvm-project/pull/121417 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/121417 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][P1061] Add stuctured binding packs (PR #121417)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
@@ -0,0 +1,117 @@ +// RUN: %clang_cc1 -fsyntax-only -std=c++26 %s -verify shafik wrote: +1 we should always cover all the examples from the proposal. https://github.com/llvm/llvm-project/pull/121417 ___ cfe-commits mai

[clang] [compiler-rt] [Clang] Make `-Wreturn-type` default to an error in all language modes (PR #123470)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
shafik wrote: > > I see a lot of diagnostics were updated to `DefaultError` but I don't see > > matching tests that demonstrate the now error. We should be testing each > > diagnostic. > > #123464 also added `-Werror=return-type` to some tests; we can remove those > now, which should cover at

[clang] [Clang] Add -fwrapv-pointer flag (PR #122486)

2025-01-23 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I feel like matching gcc's behavior makes sense for users but I am not sure about the timing for clang-20. This seems like the change in behavior could be impactful. https://github.com/llvm/llvm-project/pull/122486 __

[clang] [clang] Fix a use-after-free in expression evaluation (PR #118480)

2025-01-24 Thread Shafik Yaghmour via cfe-commits
shafik wrote: ping, is this still a problem? https://github.com/llvm/llvm-project/pull/118480 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][Sema] Fix type of an statement expression ending with an atomic type (PR #119711)

2025-01-24 Thread Shafik Yaghmour via cfe-commits
Alejandro =?utf-8?q?=C3=81lvarez_Ayll=C3=B3n?=, Alejandro =?utf-8?q?=C3=81lvarez_Ayll=C3=B3n?=, Alejandro =?utf-8?q?=C3=81lvarez_Ayll=C3=B3n?= Message-ID: In-Reply-To: https://github.com/shafik commented: This looks about right to me but I would like another set of eyes. https://github.com/llv

[clang] [Clang] Add [[clang::no_specializations]] (PR #101469)

2025-01-17 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Flagging what looks like a bug https://github.com/llvm/llvm-project/pull/101469 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add [[clang::no_specializations]] (PR #101469)

2025-01-17 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/101469 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add [[clang::no_specializations]] (PR #101469)

2025-01-17 Thread Shafik Yaghmour via cfe-commits
@@ -1212,6 +1212,14 @@ static void handlePreferredName(Sema &S, Decl *D, const ParsedAttr &AL) { << TT->getDecl(); } +static void handleNoSpecializations(Sema &S, Decl *D, const ParsedAttr &AL) { + StringRef Message; + if (AL.getNumArgs() != 0) +S.checkStringLit

[clang] [Clang] Fix createConstexprUnknownAPValues to use zero offset when ceating APValue (PR #124478)

2025-01-26 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik closed https://github.com/llvm/llvm-project/pull/124478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix createConstexprUnknownAPValues to use zero offset when ceating APValue (PR #124478)

2025-01-26 Thread Shafik Yaghmour via cfe-commits
shafik wrote: First failure looks like a flaky build issue: https://github.com/llvm/llvm-project/issues/124485 https://github.com/llvm/llvm-project/pull/124478 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mail

[clang] [Clang] Fix createConstexprUnknownAPValues to use zero offset when ceating APValue (PR #124478)

2025-01-26 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik created https://github.com/llvm/llvm-project/pull/124478 When implmenting P2280R4 here: https://github.com/llvm/llvm-project/pull/95474 When creating the APValue to store and constexprUnknown value I used an offset of CharUnits::One() but it should have been CharUnits

[clang] [Clang] Fix createConstexprUnknownAPValues to use zero offset when ceating APValue (PR #124478)

2025-01-26 Thread Shafik Yaghmour via cfe-commits
shafik wrote: No Release notes b/c this is a fix for https://github.com/llvm/llvm-project/pull/95474 which has its own release note. Tests for this fix will be added by https://github.com/llvm/llvm-project/pull/124476 https://github.com/llvm/llvm-project/pull/124478 __

[clang] [clang] Prevent duplicated instantiation of enumerators of unscoped member enumerations (PR #124407)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?André?= Brand , =?utf-8?q?André?= Brand Message-ID: In-Reply-To: shafik wrote: > @cor3ntin Thanks! I just added some details to the GitHub description. I hope > it's not too verbose. And I rebased the branch to resolve the conflict in the > release notes. Terse summaries are reall

[clang] [Clang] Fix immediate escalation of template function specializations. (PR #124404)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
@@ -528,3 +528,21 @@ D d(0); // expected-note {{in implicit initialization for inherited constructor // expected-error@-1 {{call to immediate function 'GH112677::D::SimpleCtor' is not a constant expression}} } + +namespace GH123405 { + +consteval void fn() {} + +template +c

[clang] [Clang] Remove unnecessary Decl transform & profiles for SizeOfPackExpr (PR #124533)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: In my comment here, it really looks like a clang-17 regression: https://github.com/llvm/llvm-project/issues/124161#event-16079402729 >From what I can tell you also address the simplified version, so I believe a >release note is probably warrented. Are ther

[clang] [clang] Implement -fstrict-bool (PR #116732)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I second that we need to document how values outside of zero and one are handled. I would like also really want to see a test that demonstrates the behavior we are expecting to support with comments explaining the result and why we expect it. After seei

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/116708 ___ cfe-commits mailing list

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: https://github.com/shafik commented: Apologies if I somehow missed it but it looks like we are not really covering the diagnostics fully and we need to in

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: @@ -10134,6 +10137,24 @@ def note_format_fix_specifier : Note<"did you mean to use '%0'?">; def note_printf_c_str: Note<"did you mean to

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: @@ -10134,6 +10137,24 @@ def note_format_fix_specifier : Note<"did you mean to use '%0'?">; def note_printf_c_str: Note<"did you mean to

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-01-27 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID: In-Reply-To: @@ -10134,6 +10137,24 @@ def note_format_fix_specifier : Note<"did you mean to use '%0'?">; def note_printf_c_str: Note<"did you mean to

[clang] [clang] Check null TypeSourceInfo in CreateUnaryExprOrTypeTraitExpr (PR #112111)

2025-01-28 Thread Shafik Yaghmour via cfe-commits
shafik wrote: ping, any chance we can make progress here? https://github.com/llvm/llvm-project/pull/112111 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Fix wrong initialization kind when handling initializing structured bindings from an array with direct-list-initialization (PR #124793)

2025-01-28 Thread Shafik Yaghmour via cfe-commits
@@ -4861,8 +4861,9 @@ static void TryListInitialization(Sema &S, S.Context.hasSameUnqualifiedType(SubInit[0]->getType(), DestType) && "Deduced to other type?"); TryArrayCopy(S, - InitializationKind::CreateCopy(Kind.getLocatio

[clang] [clang] Add 'instantiated_from' for enums to the output of TextNodeDumper (PR #124409)

2025-01-29 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Definitely makes sense. Definitely we need a test, I think the right test to add an example to is `ast-dump-decl.cpp`. Could you also put a few more details in the summary, basically explain you are modifying `TextNodeDumper::VisitEnumDecl` to be more consi

[clang] [PGO] Add a clang option -fprofile-continuous that enables PGO continuous mode (PR #124353)

2025-01-29 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Please add a summary to your PR something like `Enables continuous PGO mode where profile counter updates are continuously synced to a file.` seems ok. This is what will show up in the git log and it useful to have more than a title in the log. https://gi

[clang] [Clang] disallow the use of asterisks preceding constructor and destructor names (PR #122621)

2025-01-12 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thank you for the fix. Please add a more detailed summary, the title feels sufficient to describe the problem but you should outline the solution in the summary, at least briefly. e.g. adding `checkMethodPointerType` which will called during to verify

[clang] [Clang] disallow the use of asterisks preceding constructor and destructor names (PR #122621)

2025-01-12 Thread Shafik Yaghmour via cfe-commits
@@ -96,3 +96,13 @@ namespace PR38286 { template struct C; // expected-note {{non-type declaration found}} template C::~C() {} // expected-error {{identifier 'C' after '~' in destructor name does not name a type}} } + +namespace GH121706 { +struct S { + *S(); // expected-

[clang] [Clang] disallow the use of asterisks preceding constructor and destructor names (PR #122621)

2025-01-12 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/122621 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Note member decl when initializer list default constructs member (PR #121854)

2025-01-13 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thank you for the fix. At a first glance this seems to make sense to me, I added some more reviewers. Please add a release note. https://github.com/llvm/llvm-project/pull/121854 ___ cfe-commits mailing list cfe-c

[clang] [clang] Evaluate constant initializers in C as well (PR #121950)

2025-01-07 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I would love to see tests that highlight any differences between C and C++ in this area. https://github.com/llvm/llvm-project/pull/121950 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.o

[clang] [Clang] Re-write codegen for atomic_test_and_set and atomic_clear (PR #121943)

2025-01-07 Thread Shafik Yaghmour via cfe-commits
@@ -284,11 +284,26 @@ void f(_Atomic(int) *i, const _Atomic(int) *ci, const volatile int flag_k = 0; volatile int flag = 0; - (void)(int)__atomic_test_and_set(&flag_k, memory_order_seq_cst); // expected-warning {{passing 'const volatile int *' to parameter of type 'vola

[clang] [Clang] Don't form a type constraint if the concept is invalid (PR #122065)

2025-01-08 Thread Shafik Yaghmour via cfe-commits
@@ -1969,7 +1970,7 @@ void ASTDeclWriter::VisitTemplateTypeParmDecl(TemplateTypeParmDecl *D) { if (OwnsDefaultArg) Record.AddTemplateArgumentLoc(D->getDefaultArgument()); - if (!TC && !OwnsDefaultArg && + if (!D->hasTypeConstraint() && !OwnsDefaultArg && -

[clang] [Clang] Don't form a type constraint if the concept is invalid (PR #122065)

2025-01-08 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/122065 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Don't form a type constraint if the concept is invalid (PR #122065)

2025-01-08 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: After commit review. Thank you for the fix. https://github.com/llvm/llvm-project/pull/122065 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang][refactor] Refactor `findNextTokenIncludingComments` (PR #123060)

2025-01-16 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/123060 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang-tools-extra] [clang][refactor] Refactor `findNextTokenIncludingComments` (PR #123060)

2025-01-16 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: `Lexer::findNextToken` has an additional check: `if (!Lexer::isAtEndOfMacroExpansion(Loc, SM, LangOpts, &Loc))` Does this not change behavior in the case we are replacing? I imagine folks just copied from `Lexer::findNextToken` and purposely left this out,

[clang] [clang-tools-extra] [clang][refactor] Refactor `findNextTokenIncludingComments` (PR #123060)

2025-01-16 Thread Shafik Yaghmour via cfe-commits
@@ -118,47 +118,19 @@ findMembersUsedInInitExpr(const CXXCtorInitializer *Initializer, return Results; } -/// Returns the next token after `Loc` (including comment tokens). -static std::optional getTokenAfter(SourceLocation Loc, shafik wrote: This looks li

[clang] [Clang] Correctly propagate type aliases' unexpanded flags up to lambda (PR #122875)

2025-01-16 Thread Shafik Yaghmour via cfe-commits
@@ -47,6 +49,10 @@ template void f() { }(), ...); }(1, 2); + [](Is...) { +([] { using T = ElementType; }(), ...); shafik wrote: Out of curiosity were applying the `getCanonicalType` to `T` and getting `int` while we really wanted `ElementType`?

[clang] [clang] handle fp options in __builtin_convertvector (PR #125522)

2025-02-16 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik approved this pull request. LGTM Assuming no objections from @tbaederr https://github.com/llvm/llvm-project/pull/125522 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/

[clang] [clang][AST] Handle dependent representation of call to function with explicit object parameter in CallExpr::getBeginLoc() (PR #126868)

2025-02-12 Thread Shafik Yaghmour via cfe-commits
@@ -1648,8 +1648,11 @@ SourceLocation CallExpr::getBeginLoc() const { if (const auto *Method = dyn_cast_if_present(getCalleeDecl()); Method && Method->isExplicitObjectMemberFunction()) { -assert(getNumArgs() > 0 && getArg(0)); -return getArg(0)->getBeg

[clang] [clang][AST] Handle dependent representation of call to function with explicit object parameter in CallExpr::getBeginLoc() (PR #126868)

2025-02-12 Thread Shafik Yaghmour via cfe-commits
shafik wrote: Can we please add more details in the summary about e.g. "This fixes a crash when ... and the fix is ..." https://github.com/llvm/llvm-project/pull/126868 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cg

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-02-24 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier , =?utf-8?q?Félix?= Cloutier Message-ID

[clang] [clang] Implement __attribute__((format_matches)) (PR #116708)

2025-02-24 Thread Shafik Yaghmour via cfe-commits
=?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Cloutier , =?utf-8?q?F=C3=A9lix?= Clou

[clang] [clang] more useful error message for decomposition declaration missing initializer (PR #127924)

2025-02-26 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thank you for improving the summary. @erichkeane mentioned that templates are a special case for the diagnostics with your original approach. Can we add a test that deal w/ templates to verify that the diagnostic works in those case properly? It still looks

[clang] [clang][Sema] Propagate qualifiers during derived-to-base conversion (PR #127824)

2025-02-26 Thread Shafik Yaghmour via cfe-commits
@@ -3107,8 +3107,12 @@ Sema::PerformObjectMemberConversion(Expr *From, /*IgnoreAccess=*/true)) return ExprError(); - return ImpCastExprToType(From, DestType, CK_UncheckedDerivedToBase, - VK, &BasePath); + Quali

[clang] [clang] Alias cc modifier to c (PR #127719)

2025-02-26 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: It seems like for gcc at least, IIUC, `cc` does a bit more than `c` so while we are supporting `cc` for compatibility we are not fully supporting it? Specifically: `except try harder to print it with no punctuation` Perhaps we should document that in the c

[clang] [clang][Sema] Propagate qualifiers during derived-to-base conversion (PR #127824)

2025-02-26 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/127824 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] more useful error message for decomposition declaration missing initializer (PR #127924)

2025-02-25 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Please provide more details than a link to the github issue. The summary is what goes in the git log and folks downstream often use git log as a first line in analyzing issues. Summaries w/o detailed summary are not useful. https://github.com/llvm/llvm-proj

[clang] [clang][bytecode] Check dtor instance pointers for active-ness (PR #128732)

2025-02-25 Thread Shafik Yaghmour via cfe-commits
@@ -504,4 +504,39 @@ namespace AnonymousUnion { static_assert(return_init_all().a.p == 7); // both-error {{}} \ // both-note {{read of member 'p' of union with no active member}} } + +namespace InactiveDestroy { + struct A { +

[clang] [clang][bytecode] Check dtor instance pointers for active-ness (PR #128732)

2025-02-25 Thread Shafik Yaghmour via cfe-commits
@@ -504,4 +504,39 @@ namespace AnonymousUnion { static_assert(return_init_all().a.p == 7); // both-error {{}} \ // both-note {{read of member 'p' of union with no active member}} } + +namespace InactiveDestroy { + struct A { +

[clang] [clang][bytecode][NFC] Add missing LLVM_PREFERRED_TYPE to bitfield (PR #128740)

2025-02-25 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik approved this pull request. LGTM but please add a more detailed summary something along the lines of `Added LLVM_PREFERRED_TYPE to InUnion field of InlineDescriptor` would be sufficient. https://github.com/llvm/llvm-project/pull/128740 _

[clang] [clang][ASTImporter] Fix AST import if anonymous namespaces are merged (PR #128735)

2025-02-25 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I did not fully understand this part of the summary `I did not check for other possibilities for namespaces that are not in a TU or namespace but at least the code should handle all cases` but I take it there are cases you are not testing? Is there a reas

[clang] [Clang] Treat constexpr-unknown value as invalid in `EvaluateAsInitializer` (PR #128409)

2025-02-28 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: I get that we are allowing constexpr unknown values into codegen and that is a mistake but I don't totally follow the fix. Can you go into more details? If I am reading the code correctly there should be some constexpr cases that generate a diagnostic, can

[clang] [Clang] Check for uninitialized use in lambda within CXXOperatorCallExpr (PR #129198)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
@@ -12796,6 +12799,7 @@ namespace { } void VisitCXXOperatorCallExpr(CXXOperatorCallExpr *E) { + llvm::SaveAndRestore CxxOpCallScope(isInCXXOperatorCall, true); shafik wrote: We should be using [bugprone-argument-comment](https://clang.llvm.org/e

[clang] [Clang] Check for uninitialized use in lambda within CXXOperatorCallExpr (PR #129198)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/129198 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Check for uninitialized use in lambda within CXXOperatorCallExpr (PR #129198)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
@@ -12609,6 +12611,7 @@ namespace { isPODType = false; isRecordType = false; isReferenceType = false; + isInCXXOperatorCall = false; shafik wrote: It feels like changing this to use in class member initializers would have been a big win

[clang] [Clang] Check for uninitialized use in lambda within CXXOperatorCallExpr (PR #129198)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
@@ -892,6 +892,11 @@ namespace lambdas { return a1.x; }); A a2([&] { return a2.x; }); // ok +A a3([=] { return a3.x; }()); // expected-warning{{variable 'a3' is uninitialized when used within its own initialization}} shafik wrote: Do we now

[clang] [Clang] [Sema] Allow non-local/non-variable declarations in for loop (PR #129737)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
shafik wrote: > > Should this have updated: https://clang.llvm.org/c_status.html > > Not according to Aaron: [#129737 > (comment)](https://github.com/llvm/llvm-project/pull/129737#discussion_r1980260552) Oh wow, my bad, I missed that 😬 https://github.com/llvm/llvm-project/pull/129737

[clang] [Clang] [Sema] Allow non-local/non-variable declarations in for loop (PR #129737)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
@@ -1,13 +1,21 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify=c11 -std=c11 -pedantic %s +// RUN: %clang_cc1 -fsyntax-only -verify=c23 -std=c23 -Wpre-c23-compat %s // Check C99 6.8.5p3 void b1 (void) { for (void (*f) (void);;); } -void

[clang] [Sema] Instantiate destructors for initialized members (PR #128866)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/128866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Instantiate destructors for initialized members (PR #128866)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
@@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s + +namespace t1{ +template struct VSX { + ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \ +

[clang] [Sema] Instantiate destructors for initialized members (PR #128866)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik approved this pull request. LGTM besides the last comment I made on adding a comment to the test. https://github.com/llvm/llvm-project/pull/128866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/

[clang] [Clang] add -Wshift-bool warning to handle shifting of bool (PR #127336)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Does this also warns on expressions that result in a `bool` e.g. https://godbolt.org/z/aY3cons4T ```cpp bool a = (x < y) << 1; ``` https://github.com/llvm/llvm-project/pull/127336 ___ cfe-commits mailing list cfe-

[clang] [Clang] add -Wshift-bool warning to handle shifting of bool (PR #127336)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/127336 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] [Sema] Allow non-local/non-variable declarations in for loop (PR #129737)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
@@ -1,13 +1,21 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify=c11 -std=c11 -pedantic %s +// RUN: %clang_cc1 -fsyntax-only -verify=c23 -std=c23 -Wpre-c23-compat %s // Check C99 6.8.5p3 void b1 (void) { for (void (*f) (void);;); } -void

[clang] [Clang] Check for uninitialized use in lambda within CXXOperatorCallExpr (PR #129198)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Thank you for the PR, some after commit review. The bugprone comment should be addressed and if there are more cases we catch that are not covered by existing tests, we should add more tests. The in class member initializers feels like it would be worth doi

[clang] Improve the -Wundefined-func-template diagnostic note for invisible template functions (PR #129031)

2025-03-08 Thread Shafik Yaghmour via cfe-commits
@@ -759,13 +759,11 @@ Sema::BuildDependentDeclRefExpr(const CXXScopeSpec &SS, TemplateArgs); } -bool Sema::DiagnoseUninstantiableTemplate(SourceLocation PointOfInstantiation, - NamedDecl *Instantiation, -

[clang] [clang-tools-extra] [clang] Compute accurate begin location for CallExpr with explicit object parameter (PR #117841)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
shafik wrote: This PR was flagged as the cause of this crash: https://github.com/llvm/llvm-project/issues/130272 https://github.com/llvm/llvm-project/pull/117841 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/ma

[clang] [clang] Allow constexpr-unknown values pre C++23 (PR #129646)

2025-03-07 Thread Shafik Yaghmour via cfe-commits
Timm =?utf-8?q?Bäder?= Message-ID: In-Reply-To: shafik wrote: > > @cor3ntin I see... My opinion is because [N4916](https://wg21.link/n4916) > > said the [P2280R4](https://wg21.link/p2280r4) was accepted as a DR and GCC > > is so treating it. Not sure whether the divergence would be desired.

[clang] [Clang] [Sema] Allow non-local/non-variable declarations in for loop (PR #129737)

2025-03-08 Thread Shafik Yaghmour via cfe-commits
@@ -2269,10 +2269,11 @@ StmtResult Sema::ActOnForStmt(SourceLocation ForLoc, SourceLocation LParenLoc, for (auto *DI : DS->decls()) { if (VarDecl *VD = dyn_cast(DI)) { VarDeclSeen = true; - if (VD->isLocalVarDecl() && !VD->hasLocalStorage()) {

[clang] Convert unreachable return statement into llvm_unreachable (PR #129627)

2025-03-05 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik closed https://github.com/llvm/llvm-project/pull/129627 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Change `ASTUnit::getASTContext() const` to return a non-const `ASTContext` (PR #130096)

2025-03-06 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Just throwing in my $0.02 and saying I agree w/ Aaron and Vlad here, this is not the right direction. Having a `const` method return a non-const that we will then mutate is just not clean code. Having to use `const_cast` documents we are violating expectati

[clang] [clang][Sema] Fix for enums overflowing (#24667) (PR #78742)

2025-03-11 Thread Shafik Yaghmour via cfe-commits
shafik wrote: ping, are you waiting on feedback on your last comment to move forward? https://github.com/llvm/llvm-project/pull/78742 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] [Sema] Allow non-local/non-variable declarations in for loop (PR #129737)

2025-03-11 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: Should this have updated: https://clang.llvm.org/c_status.html Also it would have been nice to mention the paper number in the release notes, I am assuming there was a paper? CC @AaronBallman https://github.com/llvm/llvm-project/pull/129737 _

[clang] [clang] Alias cc modifier to c (PR #127719)

2025-02-27 Thread Shafik Yaghmour via cfe-commits
shafik wrote: > > It seems like for gcc at least, IIUC, `cc` does a bit more than `c` so > > while we are supporting `cc` for compatibility we are not fully supporting > > it? Specifically: > > `except try harder to print it with no punctuation` > > Perhaps we should document that in the commen

[clang] [Clang][diagnostics] Fix structured binding shadows template param loc (PR #129116)

2025-02-27 Thread Shafik Yaghmour via cfe-commits
shafik wrote: > @shafik I added the sample to our test cases, not sure if we can add source > loc in expected line, I will check that h/t @erichkeane something like this should help get us the confirmation in the test we want: https://github.com/llvm/llvm-project/pull/129116 https://github.co

[clang] [-Wunsafe-buffer-usage] Fix a potential overflow bug reported by #126334 (PR #129169)

2025-02-28 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: LGTM, thank you for the quick fix! https://github.com/llvm/llvm-project/pull/129169 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)

2025-03-04 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik edited https://github.com/llvm/llvm-project/pull/128866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)

2025-03-04 Thread Shafik Yaghmour via cfe-commits
@@ -5450,10 +5450,20 @@ bool Sema::SetCtorInitializers(CXXConstructorDecl *Constructor, bool AnyErrors, NumInitializers * sizeof(CXXCtorInitializer*)); Constructor->setCtorInitializers(baseOrMemberInitializers); +SourceLocation Location = Constructor->getLo

[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)

2025-03-04 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik commented: This requires a release note, especially b/c this is a conformance fix. https://github.com/llvm/llvm-project/pull/128866 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman

[clang] [Sema] Instantiate destructors for initialized anonymous union fields (PR #128866)

2025-03-04 Thread Shafik Yaghmour via cfe-commits
@@ -0,0 +1,48 @@ +// RUN: %clang_cc1 -std=c++11 -fsyntax-only -verify %s + +namespace t1{ +template struct VSX { + ~VSX() { static_assert(sizeof(T) != 4, ""); } // expected-error {{static assertion failed due to requirement 'sizeof(int) != 4':}} \ +

[clang] [Clang] Fix the printout of CXXParenListInitExpr involving default arguments (PR #130731)

2025-03-11 Thread Shafik Yaghmour via cfe-commits
https://github.com/shafik approved this pull request. LGTM, I am a bit discouraged that this did not alter an tests. https://github.com/llvm/llvm-project/pull/130731 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin

<    4   5   6   7   8   9   10   11   >