[clang] [Clang] Fix crash with `source_location` in lambda declarators. (PR #107411)

2024-09-05 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/107411 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Fix crash with `source_location` in lambda declarators. (PR #107411)

2024-09-05 Thread Erich Keane via cfe-commits
@@ -2287,6 +2288,15 @@ APValue SourceLocExpr::EvaluateInContext(const ASTContext &Ctx, Context = getParentContext(); } + // If we are currently parsing a lambda declarator, we might not have a fully + // formed call operator declaration yet, and we could not form a fu

[clang] [Parser][NFC] Move the core parsing of an attribute into a separate method (PR #107300)

2024-09-05 Thread Erich Keane via cfe-commits
@@ -2943,6 +2943,9 @@ class Parser : public CodeCompletionHandler { return false; } + bool ParseGNUSingleAttribute(ParsedAttributes &Attrs, SourceLocation &EndLoc, erichkeane wrote: I don't have a preference for any of the 3 names, but a comment explai

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-05 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I'm happy enough with it as is, I'd like @Sirraide to do 1 last pass, but if he approves, so do I. https://github.com/llvm/llvm-project/pull/99656 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https:/

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -0,0 +1,1566 @@ +//=== SemaFunctionEffects.cpp - Sema handling of function effects -===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: A

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -0,0 +1,1566 @@ +//=== SemaFunctionEffects.cpp - Sema handling of function effects -===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: A

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -8392,6 +8397,20 @@ void ASTReader::InitializeSema(Sema &S) { NewOverrides.applyOverrides(SemaObj->getLangOpts()); } + if (!DeclsWithEffectsToVerify.empty()) { +for (GlobalDeclID ID : DeclsWithEffectsToVerify) { + Decl *D = GetDecl(ID); + FunctionEf

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -10950,6 +10950,51 @@ def warn_imp_cast_drops_unaligned : Warning< InGroup>; // Function effects +def warn_func_effect_violation : Warning< + "'%0' %select{function|constructor|destructor|lambda|block|constructor's member initializer}1 " erichkeane wrot

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -4932,6 +4938,78 @@ class FunctionEffectsRef { void dump(llvm::raw_ostream &OS) const; }; +/// A mutable set of FunctionEffect::Kind. +class FunctionEffectKindSet { + // For now this only needs to be a bitmap. + constexpr static size_t EndBitPos = 8; + using KindBitsT

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -15099,6 +15037,106 @@ class Sema final : public SemaBase { std::string getFixItZeroLiteralForType(QualType T, SourceLocation Loc) const; ///@} + + // erichkeane wrote: @endilll ? https://github.com/llvm/llvm-project/pull/99656 __

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -10950,6 +10950,51 @@ def warn_imp_cast_drops_unaligned : Warning< InGroup>; // Function effects +def warn_func_effect_violation : Warning< + "'%0' %select{function|constructor|destructor|lambda|block|constructor's member initializer}1 " erichkeane wrot

[clang] [clang-tools-extra] [clang] Implement CWG2398 provisional TTP matching to class templates (PR #94981)

2024-09-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I've not done as in depth of a review as Corentin, but I approve of the direction here, I think the approach is correct, and most of the changes are fairly mechanical. So once Corentin is happy with the changes, so am I. https://github.com/llvm/llvm-pr

[clang] [clang] WIP: Warn on mismatched RequiresCapability attributes (PR #67520)

2024-09-04 Thread Erich Keane via cfe-commits
erichkeane wrote: Rather than this being "not added in the header file", should we just make this one of the attributes that is disallowed after the thing has been 'referenced'? Or is that a dumb suggestion here? https://github.com/llvm/llvm-project/pull/67520

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -186,4 +218,370 @@ bool Sema::CheckCountedByAttrOnField(FieldDecl *FD, Expr *E, bool CountInBytes, return false; } +SourceRange Sema::BoundsSafetySourceRangeFor(const CountAttributedType *CATy) { erichkeane wrote: I agree with Sirraide here, but would h

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -3343,6 +3363,8 @@ class CountAttributedType final static bool classof(const Type *T) { return T->getTypeClass() == CountAttributed; } + + StringRef GetAttributeName(bool WithMacroPrefix) const; erichkeane wrote: ```suggestion StringRef getAttrib

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -186,4 +218,370 @@ bool Sema::CheckCountedByAttrOnField(FieldDecl *FD, Expr *E, bool CountInBytes, return false; } +SourceRange Sema::BoundsSafetySourceRangeFor(const CountAttributedType *CATy) { + // Note: This implementation relies on `CountAttributedType` being uniqu

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I did a pass, I think @Sirraide is on the right direction in his reviews here, but the general direction of this patch is also completely acceptable. https://github.com/llvm/llvm-project/pull/106321 ___ cfe-com

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/106321 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [BoundsSafety][Sema] Allow counted_by and counted_by_or_null on pointers where the pointee type is incomplete but potentially completable (PR #106321)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -13559,6 +13562,27 @@ QualType Sema::CheckAssignmentOperands(Expr *LHSExpr, ExprResult &RHS, QualType LHSType = LHSExpr->getType(); QualType RHSType = CompoundType.isNull() ? RHS.get()->getType() : CompoundType; + + if (RHS.

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -4932,6 +4938,78 @@ class FunctionEffectsRef { void dump(llvm::raw_ostream &OS) const; }; +/// A mutable set of FunctionEffect::Kind. +class FunctionEffectKindSet { + // For now this only needs to be a bitmap. + constexpr static size_t EndBitPos = 8; + using KindBitsT

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -0,0 +1,1566 @@ +//=== SemaFunctionEffects.cpp - Sema handling of function effects -===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: A

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -8392,6 +8397,20 @@ void ASTReader::InitializeSema(Sema &S) { NewOverrides.applyOverrides(SemaObj->getLangOpts()); } + if (!DeclsWithEffectsToVerify.empty()) { +for (GlobalDeclID ID : DeclsWithEffectsToVerify) { + Decl *D = GetDecl(ID); + FunctionEf

[clang] nonblocking/nonallocating attributes: 2nd pass caller/callee analysis (PR #99656)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -0,0 +1,1566 @@ +//=== SemaFunctionEffects.cpp - Sema handling of function effects -===// erichkeane wrote: I've had a hard time with the review of this file, so I haven't done a close look. Hopefully someone who understands this better than me has

[clang] Disallow btf_type_tag in C++ mode (PR #107238)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -225,6 +225,11 @@ Attribute Changes in Clang more cases where the returned reference outlives the object. (#GH100567) +- Now correctly diagnosing use of ``btf_type_tag`` in C++ and ignoring it; this + attribute is a C-only attribute, and was causing crashes with templa

[clang] Disallow btf_type_tag in C++ mode (PR #107238)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -225,6 +225,11 @@ Attribute Changes in Clang more cases where the returned reference outlives the object. (#GH100567) +- Now correctly diagnosing use of ``btf_type_tag`` in C++ and ignoring it; this erichkeane wrote: ```suggestion - Clang now correctly

[clang] Disallow btf_type_tag in C++ mode (PR #107238)

2024-09-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/107238 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Disallow btf_type_tag in C++ mode (PR #107238)

2024-09-04 Thread Erich Keane via cfe-commits
@@ -6490,6 +6490,15 @@ static void HandleBTFTypeTagAttribute(QualType &Type, const ParsedAttr &Attr, TypeProcessingState &State) { Sema &S = State.getSema(); + // This attribute is only supported in C. + // FIXME: we should implement

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/106585 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Erich Keane via cfe-commits
@@ -52,38 +52,6 @@ using namespace sema; //===--===/ namespace { -namespace TemplateInstArgsHelpers { erichkeane wrote: Awe, I thought this was clever/useful :) https://github.com/llvm/llvm

[clang] [Clang][Sema] Refactor collection of multi-level template argument lists (PR #106585)

2024-09-03 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I'll have to take another look at this when I get more time for it, but I'm glad this is getting further attention. I'd refactored this only a year or two ago (preivously it was a single really long function with a loop), so it is disappointing that we

[clang] [clang-tools-extra] [clang] Extend diagnose_if to accept more detailed warning information (PR #70976)

2024-09-03 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I'm a little cold on review here, so I don't want to accept this, but I did a scroll through and don't have any problems here. Additionally, a bunch of whitespace changes are still in this, which is making it difficult tor eview. https://github.com/llv

[clang] [clang-tools-extra] [clang] Extend diagnose_if to accept more detailed warning information (PR #70976)

2024-09-03 Thread Erich Keane via cfe-commits
@@ -101,91 +102,164 @@ namespace clang { }; } -class DiagnosticMapping { - LLVM_PREFERRED_TYPE(diag::Severity) - unsigned Severity : 3; - LLVM_PREFERRED_TYPE(bool) - unsigned IsUser : 1; - LLVM_PREFERRED_TYPE(bool) - unsigned IsPragma : 1; - LLVM_PREFERRED_TYPE(bo

[clang] [clang-tools-extra] [clang] Extend diagnose_if to accept more detailed warning information (PR #70976)

2024-09-03 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/70976 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] restrict use of attribute names reserved by the C++ standard (PR #106036)

2024-09-03 Thread Erich Keane via cfe-commits
@@ -177,6 +177,26 @@ static bool isLanguageDefinedBuiltin(const SourceManager &SourceMgr, return false; } +static bool isReservedAttrName(Preprocessor &PP, IdentifierInfo *II) { erichkeane wrote: > Because we don't support any non-standard attributes witho

[clang] [clang] fix sema init crashing on initialization sequences (PR #98102)

2024-09-03 Thread Erich Keane via cfe-commits
@@ -5576,6 +5576,10 @@ static void TryOrBuildParenListInitialization( ExprResult ER; ER = IS.Perform(S, SubEntity, SubKind, Arg ? MultiExprArg(Arg) : std::nullopt); + + if (ER.isInvalid()) erichkeane wrote: For `ExprResul

[clang] [Clang] restrict use of attribute names reserved by the C++ standard (PR #106036)

2024-09-03 Thread Erich Keane via cfe-commits
@@ -177,6 +177,26 @@ static bool isLanguageDefinedBuiltin(const SourceManager &SourceMgr, return false; } +static bool isReservedAttrName(Preprocessor &PP, IdentifierInfo *II) { erichkeane wrote: I concur with Aaron. The point of this restriction is to pe

[clang] added regcall struct by reg support (PR #95257)

2024-09-03 Thread Erich Keane via cfe-commits
erichkeane wrote: As background: That chunking behavior was not in the specification document that I was provided internally when I implemented that. IIRC at the time, regcall wasn't actually documented externally, so that documentation likely post-dates when I did my implementation. https:/

[clang] [BitInt] Expose a _BitInt literal suffix in C++ (PR #86586)

2024-06-07 Thread Erich Keane via cfe-commits
@@ -1117,6 +1118,31 @@ NumericLiteralParser::NumericLiteralParser(StringRef TokSpelling, if (isImaginary) break; // Cannot be repeated. isImaginary = true; continue; // Success. +case '_': + if (isFPConstant) +break; // Invalid for floats

[clang] [lldb] [clang][AST] fix ast-print of extern with >=2 declarators, fixed (PR #93913)

2024-06-07 Thread Erich Keane via cfe-commits
erichkeane wrote: > > I see the 2nds commit doesn't add any tests! Please make it do so > > I've tried and I'm not quite sure how to do it. The issue is we need to test > AST printing of «implicitly declared» functions, such as builtins and > functions instrumented by lldb, such as `log` for l

[clang] [clang] always use resolved arguments for default argument deduction (PR #94756)

2024-06-07 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/94756 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [lldb] [clang][AST] fix ast-print of extern with >=2 declarators, fixed (PR #93913)

2024-06-07 Thread Erich Keane via cfe-commits
erichkeane wrote: I see the 2nds commit doesn't add any tests! Please make it do so, else LGTM (plus might want to do a 'merge' commit to reset the CI to a more stable state). https://github.com/llvm/llvm-project/pull/93913 ___ cfe-commits mailing li

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-06-06 Thread Erich Keane via cfe-commits
@@ -1790,24 +1782,25 @@ ExprResult Sema::ActOnMemberAccessExpr(Scope *S, Expr *Base, const TemplateArgumentListInfo *TemplateArgs; DecomposeUnqualifiedId(Id, TemplateArgsBuffer, NameInfo, TemplateArgs); - - bool IsArrow = (OpKind == tok::arrow); +

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-06-06 Thread Erich Keane via cfe-commits
@@ -390,29 +390,37 @@ bool Sema::isAcceptableNestedNameSpecifier(const NamedDecl *SD, /// (e.g., Base::), perform name lookup for that identifier as a /// nested-name-specifier within the given scope, and return the result of that /// name lookup. -NamedDecl *Sema::FindFirstQu

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-06-06 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/92957 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-06-06 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. Sorry this took so long! Apparently I'd left some comments without finishing my review. Did another look through, everything looks good, just some minor nits. Apply/merge at your convenience. https://github.com/llvm/llvm-project/pull

[clang] [libcxx] [Clang] Implement resolution for CWG1835 (PR #92957)

2024-06-06 Thread Erich Keane via cfe-commits
@@ -1442,19 +1442,27 @@ SourceLocation CXXUnresolvedConstructExpr::getBeginLoc() const { CXXDependentScopeMemberExpr::CXXDependentScopeMemberExpr( const ASTContext &Ctx, Expr *Base, QualType BaseType, bool IsArrow, SourceLocation OperatorLoc, NestedNameSpecifierLoc Qua

[clang] [clang][Sema] Add missing scope flags to Scope::dumpImpl (PR #94529)

2024-06-05 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/94529 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-06-05 Thread Erich Keane via cfe-commits
https://github.com/erichkeane closed https://github.com/llvm/llvm-project/pull/93742 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Disable constexpr function body checking in more situations (PR #94347)

2024-06-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/94347 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Add tests for Core issues about friend templates (PR #94288)

2024-06-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/94288 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Disable constexpr function body checking in more situations (PR #94347)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -2469,11 +2469,20 @@ static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl, // base class sub-objects shall be a constexpr constructor. // // Note that this rule is distinct from the "requirements for a constexpr - // function", so is not

[clang] Disable constexpr function body checking in more situations (PR #94347)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -505,6 +505,9 @@ COMPATIBLE_LANGOPT(IncrementalExtensions, 1, 0, " True if we want to process sta BENIGN_LANGOPT(CheckNew, 1, 0, "Do not assume C++ operator new may not return NULL") +BENIGN_LANGOPT(CheckConstexprFunctionBodies, 1, 1, + "True if we want to

[clang] Disable constexpr function body checking in more situations (PR #94347)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -961,6 +961,10 @@ def Wdeprecated : Flag<["-"], "Wdeprecated">, Group, HelpText<"Enable warnings for deprecated constructs and define __DEPRECATED">; def Wno_deprecated : Flag<["-"], "Wno-deprecated">, Group, Visibility<[ClangOption, CC1Option]>; +def Winvalid_constexp

[clang] [Clang] Static and explicit object member functions with the same parameter-type-lists (PR #93430)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -5813,6 +5813,23 @@ static TypoCorrection TryTypoCorrectionForCall(Sema &S, Expr *Fn, return TypoCorrection(); } +static bool isParenthetizedAndQualifiedAddressOfExpr(Expr *Fn) { + if (!isa(Fn)) +return false; + + Fn = Fn->IgnoreParens(); erichkean

[clang] [Clang] Static and explicit object member functions with the same parameter-type-lists (PR #93430)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -7807,6 +7833,7 @@ void Sema::AddTemplateOverloadCandidate( Candidate.IgnoreObjectArgument = isa(Candidate.Function) && !isa(Candidate.Function); +Candidate.TookAddressOfOverload = false; erichkeane wrote: Feel like Candidate should

[clang] [Clang] Static and explicit object member functions with the same parameter-type-lists (PR #93430)

2024-06-04 Thread Erich Keane via cfe-commits
@@ -3048,10 +3050,12 @@ class OverloadExpr : public Expr { Result.HasFormOfMemberPointer = (E == Ovl && Ovl->getQualifier()); Result.IsAddressOfOperand = true; + Result.IsAddressOfOperandWithParen = HasParen; erichkeane wrote: Cleanup nit: I

[clang] [Clang] Static and explicit object member functions with the same parameter-type-lists (PR #93430)

2024-06-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/93430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Static and explicit object member functions with the same parameter-type-lists (PR #93430)

2024-06-04 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/93430 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] Reapply "[CUDA] Fix a couple of driver tests that really weren't bein… (PR #94000)

2024-06-03 Thread Erich Keane via cfe-commits
erichkeane wrote: Yep! I added it to the 'run' line as well, and adding it there fixes the test on my machine. So I suspect that would be the fix? https://github.com/llvm/llvm-project/pull/94000 ___ cfe-commits mailing list cfe-commits@lists.llvm.or

[clang] Reapply "[CUDA] Fix a couple of driver tests that really weren't bein… (PR #94000)

2024-06-03 Thread Erich Keane via cfe-commits
erichkeane wrote: Bizarrely if I run the piped version, I get no error: ``` ekeane@dev-epyc4:/local/home/ekeane/llvm-project/build$ /local/home/ekeane/llvm-project/build/bin/clang -### -x cuda --target=powerpc64le-linux-gnu -std=c++11 --cuda-gpu-arch=sm_35 -nocudainc -nocudalib -fopenmp=libomp

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-06-03 Thread Erich Keane via cfe-commits
https://github.com/erichkeane updated https://github.com/llvm/llvm-project/pull/93742 >From 51792c63e8fee3ad662174d6a53bbca195cbc1b4 Mon Sep 17 00:00:00 2001 From: erichkeane Date: Fri, 24 May 2024 12:12:29 -0700 Subject: [PATCH 1/4] [OpenACC] Loop construct basic Sema and AST work This patch

[clang] Reapply "[CUDA] Fix a couple of driver tests that really weren't bein… (PR #94000)

2024-06-03 Thread Erich Keane via cfe-commits
erichkeane wrote: I've been having this fail in my local build for a few days now: ``` TEST 'Clang :: Driver/offloading-interoperability.c' FAILED Exit Code: 1 Command Output (stderr): -- RUN: at line 4: /local/home/ekeane/llvm-project/build/bin/clang -

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-31 Thread Erich Keane via cfe-commits
erichkeane wrote: Did another merge to help with my work on followups. https://github.com/llvm/llvm-project/pull/93742 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-31 Thread Erich Keane via cfe-commits
https://github.com/erichkeane updated https://github.com/llvm/llvm-project/pull/93742 >From 51792c63e8fee3ad662174d6a53bbca195cbc1b4 Mon Sep 17 00:00:00 2001 From: erichkeane Date: Fri, 24 May 2024 12:12:29 -0700 Subject: [PATCH 1/3] [OpenACC] Loop construct basic Sema and AST work This patch

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/93966 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -14,9 +14,11 @@ #define LLVM_CLANG_SEMA_SEMASYCL_H #include "clang/AST/Decl.h" +#include "clang/AST/DeclBase.h" erichkeane wrote: Wonder same about declbase as well, probably a bit of work on a few of these includes to do that sort of analysis. https://g

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -18,6 +18,7 @@ #include "clang/AST/Type.h" #include "clang/Basic/SourceLocation.h" #include "clang/Basic/TargetInfo.h" +#include "clang/Sema/ParsedAttr.h" erichkeane wrote: Same question here. https://github.com/llvm/llvm-project/pull/93966 ___

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -3825,6 +3843,115 @@ class Sema final : public SemaBase { void redelayDiagnostics(sema::DelayedDiagnosticPool &pool); + /// Diagnose mutually exclusive attributes when present on a given erichkeane wrote: Where did this section of stuff come from? At

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -0,0 +1,57 @@ +//===- SemaSwift.h --- Swift language-specific routines ---*- C++ -*---===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apa

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -32,6 +32,7 @@ #include "clang/Basic/Specifiers.h" #include "clang/Sema/DeclSpec.h" #include "clang/Sema/Ownership.h" +#include "clang/Sema/ParsedAttr.h" erichkeane wrote: Could this be a forward decl? https://github.com/llvm/llvm-project/pull/93966 __

[clang] [clang] Split up `SemaDeclAttr.cpp` (PR #93966)

2024-05-31 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I didn't take a close look at the individual .cpp files, I assume that is mostly just Copy & paste. I would like us to be a little more forward-decl aggressive in the headers however, and perhpas try to minimize what gets pushed up to Sema.h. https://

[clang] [Clang][Sema] Push an evaluation context for type constraints (PR #93945)

2024-05-31 Thread Erich Keane via cfe-commits
@@ -5004,6 +5004,20 @@ static bool CheckDeducedPlaceholderConstraints(Sema &S, const AutoType &Type, return true; MultiLevelTemplateArgumentList MLTAL(Concept, CanonicalConverted, /*Final=*/false); + // Build up an EvaluationContex

[clang] [clang] require template arg list after template kw (PR #80801)

2024-05-31 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/80801 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][AST] fix ast-print of `extern ` with >=2 declarators (PR #93131)

2024-05-31 Thread Erich Keane via cfe-commits
erichkeane wrote: > > No worries, and I reverted it for you. When you have the fix ready, I'm > > happy to verify it on our builders before you reland. > > Can you also reopen this PR, please? For documentation/history reasons, it's > probably better to provide a fix within the scope of this P

[clang] [Clang][Sema] Diagnose variable template explicit specializations with storage-class-specifiers (PR #93873)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. Sensible to me! Definitely needs a release note. Perhaps an alert on discourse about 'potentially breaking' changes. https://github.com/llvm/llvm-project/pull/93873 ___ cfe-commits mailing li

[clang] [clang][AST] fix ast-print of `extern ` with >=2 declarators (PR #93131)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane closed https://github.com/llvm/llvm-project/pull/93131 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang][NFC] Move `PDiag` into `SemaBase` (PR #93849)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. Sensible to me, I'm all for it. https://github.com/llvm/llvm-project/pull/93849 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commit

[clang] [clang][AST] fix ast-print of `extern ` with >=2 declarators (PR #93131)

2024-05-30 Thread Erich Keane via cfe-commits
erichkeane wrote: > What should be the next step following the approvals? If you do not have 'squash and merge' rights here, one of us can do it for you once testing completes. https://github.com/llvm/llvm-project/pull/93131 ___ cfe-commits mailing l

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-30 Thread Erich Keane via cfe-commits
erichkeane wrote: Did a merge which will hopefully fix the build failures this was seeing. https://github.com/llvm/llvm-project/pull/93742 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commi

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane updated https://github.com/llvm/llvm-project/pull/93742 >From 51792c63e8fee3ad662174d6a53bbca195cbc1b4 Mon Sep 17 00:00:00 2001 From: erichkeane Date: Fri, 24 May 2024 12:12:29 -0700 Subject: [PATCH 1/3] [OpenACC] Loop construct basic Sema and AST work This patch

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane updated https://github.com/llvm/llvm-project/pull/93742 >From 51792c63e8fee3ad662174d6a53bbca195cbc1b4 Mon Sep 17 00:00:00 2001 From: erichkeane Date: Fri, 24 May 2024 12:12:29 -0700 Subject: [PATCH 1/3] [OpenACC] Loop construct basic Sema and AST work This patch

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-30 Thread Erich Keane via cfe-commits
@@ -0,0 +1,164 @@ + +// RUN: %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s + +// Test this with PCH. +// RUN: %clang_cc1 %s -fopenacc -emit-pch -o %t %s +// RUN: %clang_cc1 %s -fopenacc -include-pch %t -ast-dump-all | FileCheck %s + +#ifndef PCH_HELPER +#define PCH_HELPER + +vo

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-30 Thread Erich Keane via cfe-commits
https://github.com/erichkeane updated https://github.com/llvm/llvm-project/pull/93742 >From 51792c63e8fee3ad662174d6a53bbca195cbc1b4 Mon Sep 17 00:00:00 2001 From: erichkeane Date: Fri, 24 May 2024 12:12:29 -0700 Subject: [PATCH 1/2] [OpenACC] Loop construct basic Sema and AST work This patch

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-29 Thread Erich Keane via cfe-commits
@@ -0,0 +1,164 @@ + +// RUN: %clang_cc1 %s -fopenacc -ast-dump | FileCheck %s + +// Test this with PCH. +// RUN: %clang_cc1 %s -fopenacc -emit-pch -o %t %s +// RUN: %clang_cc1 %s -fopenacc -include-pch %t -ast-dump-all | FileCheck %s + +#ifndef PCH_HELPER +#define PCH_HELPER + +vo

[clang] [OpenACC] Loop construct basic Sema and AST work (PR #93742)

2024-05-29 Thread Erich Keane via cfe-commits
https://github.com/erichkeane created https://github.com/llvm/llvm-project/pull/93742 This patch implements the 'loop' construct AST, as well as the basic appertainment rule. Additionally, it sets up the 'parent' compute construct, which is necessary for codegen/other diagnostics. A 'loop' c

[clang] [clang] Be const-correct with all uses of `Module *`. (PR #93493)

2024-05-28 Thread Erich Keane via cfe-commits
erichkeane wrote: > One suggestion, if you are going to go about this problem systematically, try > to tackle the hardest problems first. > > For example: Try to make `MultiLevelTemplateArgumentList` const correct. I > would like other suggestions as well. Right, yeah. Unfortunately const-co

[clang] [Clang][Sema] Use StructuralValues to model dependent NTTP arguments (PR #93556)

2024-05-28 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/93556 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Use StructuralValues to model dependent NTTP arguments (PR #93556)

2024-05-28 Thread Erich Keane via cfe-commits
@@ -221,8 +221,13 @@ static const ValueDecl *getAsSimpleValueDeclRef(const ASTContext &Ctx, // We model class non-type template parameters as their template parameter // object declaration. - if (V.isStruct() || V.isUnion()) + if (V.isStruct() || V.isUnion()) { +//

[clang] [Clang][Sema] Use StructuralValues to model dependent NTTP arguments (PR #93556)

2024-05-28 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: This change seems smaller than I expected here, so I guess I'm not entirely sure what is going on. Can you better explain how this ends up using structural values instead of the TemplateParamObjectDecl? https://github.com/llvm/llvm-project/pull/93556 _

[clang] [Clang][Sema] Use StructuralValues to model dependent NTTP arguments (PR #93556)

2024-05-28 Thread Erich Keane via cfe-commits
@@ -221,8 +221,13 @@ static const ValueDecl *getAsSimpleValueDeclRef(const ASTContext &Ctx, // We model class non-type template parameters as their template parameter // object declaration. - if (V.isStruct() || V.isUnion()) + if (V.isStruct() || V.isUnion()) { +//

[clang] [Clang][Sema] Use StructuralValues to model dependent NTTP arguments (PR #93556)

2024-05-28 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/93556 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang] Add support for [[msvc::noinline]] attribute. (PR #91720)

2024-05-28 Thread Erich Keane via cfe-commits
https://github.com/erichkeane closed https://github.com/llvm/llvm-project/pull/91720 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Tweak tryCaptureVariable for unevaluated lambdas (PR #93206)

2024-05-28 Thread Erich Keane via cfe-commits
@@ -1576,7 +1576,10 @@ ExprResult Parser::ParseLambdaExpressionAfterIntroducer( TrailingReturnTypeLoc, &DS), std::move(Attributes), DeclEndLoc); -Actions.ActOnLambdaClosureQualifiers(Intro, MutableLoc); +// We have called ActOnLa

[clang] [clang] Avoid crash due to unimplemented StructuralValue support in the template differ (PR #93265)

2024-05-24 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. https://github.com/llvm/llvm-project/pull/93265 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [Clang][Sema] Tweak tryCaptureVariable for unevaluated lambdas (PR #93206)

2024-05-24 Thread Erich Keane via cfe-commits
@@ -1576,7 +1576,10 @@ ExprResult Parser::ParseLambdaExpressionAfterIntroducer( TrailingReturnTypeLoc, &DS), std::move(Attributes), DeclEndLoc); -Actions.ActOnLambdaClosureQualifiers(Intro, MutableLoc); +// We have called ActOnLa

[clang] [Clang][Sema] Tweak tryCaptureVariable for unevaluated lambdas (PR #93206)

2024-05-24 Thread Erich Keane via cfe-commits
https://github.com/erichkeane commented: I hope @cor3ntin comes and checks this out, but it generally looks OK to me. 1 oddity I'd like to hear about (why we can't do ActOnLambdaClosureQualifiers in the same place). https://github.com/llvm/llvm-project/pull/93206 _

[clang] [Clang][Sema] Tweak tryCaptureVariable for unevaluated lambdas (PR #93206)

2024-05-24 Thread Erich Keane via cfe-commits
https://github.com/erichkeane edited https://github.com/llvm/llvm-project/pull/93206 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

[clang] [clang] Diagnose problematic diagnostic messages (PR #93229)

2024-05-23 Thread Erich Keane via cfe-commits
@@ -1302,7 +1302,8 @@ static void verifyDiagnosticWording(const Record &Diag) { // closing '}', skipping intermediary {} pairs. size_t BraceCount = 1; -auto Iter = FullDiagText.begin() + /*%select{*/ 8; +constexpr size_t PercentSelectBraceLen = sizeof("%select{

[clang] [clang] Diagnose problematic diagnostic messages (PR #93229)

2024-05-23 Thread Erich Keane via cfe-commits
@@ -1355,7 +1357,7 @@ static void verifyDiagnosticWording(const Record &Diag) { if (isDigit(FullDiagText.back()) && *(FullDiagText.end() - 2) == '}') { // Scan backwards to find the opening curly brace. size_t BraceCount = 1; -auto Iter = FullDiagText.end() - /*}0

[clang] [clang] Diagnose problematic diagnostic messages (PR #93229)

2024-05-23 Thread Erich Keane via cfe-commits
https://github.com/erichkeane approved this pull request. 1 suggestion on improving the diagnostics, else, LGTM. https://github.com/llvm/llvm-project/pull/93229 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mail

<    1   2   3   4   5   6   7   8   9   10   >