https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
dougsonos wrote:
Moved to new file EffectAnalysis.cpp
https://g
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -15609,6 +15661,10 @@ Decl *Sema::ActOnStartOfFunctionDef(Scope
*FnBodyScope, Decl *D,
getCurLexicalContext()->getDeclKind() != Decl::ObjCImplementation)
Diag(FD->getLocation(), diag::warn_function_def_in_objc_container);
+ if (Context.hasAnyFunctionEffects())
+
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -2397,6 +2397,1262 @@ class UnsafeBufferUsageReporter : public
UnsafeBufferUsageHandler {
};
} // namespace
+//
=
+
+namespace FXAnalysis {
+
+enum class DiagnosticID : uint8_t {
+ None = 0, // s
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
dougsonos wrote:
I wish my locally-built clang format, from my branch (up-to-date with main a
few days ago) behaved the same as the one in automation :( Not sure what to do.
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
dougsonos wrote:
Thanks. That did the trick (until next time...).
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,194 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -verify %s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the AnalysisBasedWarnings pass from running at all.
+
+// This diagnostic is re-enabled an
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
@@ -0,0 +1,1199 @@
+//=== EffectAnalysis.cpp - Sema warnings for 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
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
@@ -5137,47 +5137,41 @@ StringRef FunctionEffect::name() const {
llvm_unreachable("unknown effect kind");
}
-bool FunctionEffect::canInferOnFunction(const Decl &Callee) const {
+std::optional FunctionEffect::effectProhibitingInference(
+const Decl &Callee, const Function
@@ -0,0 +1,256 @@
+// RUN: %clang_cc1 -fsyntax-only -fblocks -fcxx-exceptions -std=c++20 -verify
%s
+// These are in a separate file because errors (e.g. incompatible attributes)
currently prevent
+// the FXAnalysis pass from running at all.
+
+// This diagnostic is re-enabled a
dougsonos wrote:
I believe I have addressed all feedback so far.
https://github.com/llvm/llvm-project/pull/99656
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dougsonos wrote:
> I’m probably just stating the obvious here, but seeing as existing code
> obviously does not make use of effects, for compiling it to become slower,
> that means that we’re probably unconditionally executing code somewhere
> irrespective of whether effects are present or not
dougsonos wrote:
> So it sounds like the act of adding an additional trailing object will slow
> down the performance regardless of whether we use the new trailing object?
I was confused by some comments on `FunctionProtoType` which have diverged from
the source, and thought that it was necess
https://github.com/dougsonos created
https://github.com/llvm/llvm-project/pull/96844
- Put new FunctionProtoType trailing objects last.
- Inline FunctionEffectsRef::get()
- Manually inline FunctionEffectsRef::Profile().
>From 038b39d3235c6c8151127c34d34f498dd298273c Mon Sep 17 00:00:00 2001
Fro
dougsonos wrote:
This reduces the compile-time regression introduced by
f03cb005eb4ba3c6fb645aca2228e907db8cd452
[Clang] Introduce `nonblocking`/`nonallocating` attributes (#84983)
https://github.com/llvm/llvm-project/pull/96844
___
cfe-commits mailin
@@ -132,7 +132,6 @@ class TemplateArgument;
class TemplateArgumentListInfo;
class TemplateArgumentLoc;
class TemplateTypeParmDecl;
-template class TreeTransform;
dougsonos wrote:
Was made unnecessary by a late change in the previous branch.
https://github.co
@@ -3857,9 +3857,19 @@ void FunctionProtoType::Profile(llvm::FoldingSetNodeID
&ID, QualType Result,
}
epi.ExtInfo.Profile(ID);
- ID.AddInteger((epi.AArch64SMEAttributes << 1) | epi.HasTrailingReturn);
- epi.FunctionEffects.Profile(ID);
+ unsigned EffectCount = epi.Fu
@@ -3857,9 +3857,19 @@ void FunctionProtoType::Profile(llvm::FoldingSetNodeID
&ID, QualType Result,
}
epi.ExtInfo.Profile(ID);
- ID.AddInteger((epi.AArch64SMEAttributes << 1) | epi.HasTrailingReturn);
- epi.FunctionEffects.Profile(ID);
+ unsigned EffectCount = epi.Fu
@@ -7623,6 +7623,7 @@
handleNonBlockingNonAllocatingTypeAttr(TypeProcessingState &TPState,
FunctionEffectSet FX(EPI.FunctionEffects);
FunctionEffectSet::Conflicts Errs;
bool Success = FX.insert(NewEC, Errs);
+ (void)Success;
dougsonos wrote:
>From the
@@ -8619,6 +8621,18 @@ QualType DecayedType::getPointeeType() const {
void FixedPointValueToString(SmallVectorImpl &Str, llvm::APSInt Val,
unsigned Scale);
+inline FunctionEffectsRef FunctionEffectsRef::get(QualType QT) {
dougsonos
@@ -5132,6 +5130,10 @@ class FunctionProtoType final
return hasExtParameterInfos() ? getNumParams() : 0;
}
+ unsigned numTrailingObjects(OverloadToken) const {
dougsonos wrote:
Seems necessary when making Qualifiers no longer last.
https://github.com/
dougsonos wrote:
> I guess you meant to link to
> https://llvm-compile-time-tracker.com/compare.php?from=f03cb005eb4ba3c6fb645aca2228e907db8cd452&to=038b39d3235c6c8151127c34d34f498dd298273c&stat=instructions:u
> directly?
Thanks!
https://github.com/llvm/llvm-project/pull/96844
___
https://github.com/dougsonos closed
https://github.com/llvm/llvm-project/pull/85147
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dougsonos created
https://github.com/llvm/llvm-project/pull/112148
Bug fix: `@autoreleasepool`, `@synchronized`, and `@finally` were not being
noticed and treated as function effect violations.
>From f34e4ac55d04bcd8e34bef57afec5a39fbf2acb9 Mon Sep 17 00:00:00 2001
From: Dou
dougsonos wrote:
> Oh, also, are there any other places where we should maybe be using
> `FunctionEffectsRef::get()`?
Good question. I looked for other uses of `QualType` and `getType()` in
SemaFunctionEffects, but this is the only spot (`checkIndirectCall`) where we
are interested in obtaini
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/109855
>From 085965b324efde41168c5d51db3a368578d3458f Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Mon, 23 Sep 2024 14:44:32 -0700
Subject: [PATCH 1/5] Add clang/docs/FunctionEffectAnalysis.rst.
---
clang/docs/F
dougsonos wrote:
Ping
https://github.com/llvm/llvm-project/pull/109855
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1048,15 +1048,14 @@ class Analyzer {
}
void checkIndirectCall(CallExpr *Call, QualType CalleeType) {
- auto *FPT =
- CalleeType->getAs(); // Null if FunctionType.
FunctionEffectKindSet CalleeEffects;
- if (FPT)
-CalleeEffects.inser
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/111224
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/111224
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/111224
>From 02398e6398892dac5d151a6e425bf107213e12a8 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Fri, 4 Oct 2024 18:28:37 -0700
Subject: [PATCH 1/2] Effect analysis: correctly detect `(f ? a : b)` as
nonblockin
https://github.com/dougsonos created
https://github.com/llvm/llvm-project/pull/111224
Fix: Effect analysis: correctly detect `(f ? a : b)` as nonblocking when a and
b are
>From 02398e6398892dac5d151a6e425bf107213e12a8 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Fri, 4 Oct 2024 18:28:37 -0
@@ -1048,15 +1048,14 @@ class Analyzer {
}
void checkIndirectCall(CallExpr *Call, QualType CalleeType) {
- auto *FPT =
- CalleeType->getAs(); // Null if FunctionType.
FunctionEffectKindSet CalleeEffects;
- if (FPT)
-CalleeEffects.inser
@@ -156,6 +156,16 @@ void nb10(
static_cast(fp1)(); // expected-warning {{function with
'nonblocking' attribute must not call non-'nonblocking' expression}}
}
+// Expression involving indirection
+int nb10a() [[clang::nonblocking]];
+int nb10b() [[clang::nonblocking]];
https://github.com/dougsonos deleted
https://github.com/llvm/llvm-project/pull/111224
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dougsonos wrote:
@cjappl @Sirraide would appreciate what I hope will be a quick review on a
small fix.
https://github.com/llvm/llvm-project/pull/111224
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/list
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/111224
>From 02398e6398892dac5d151a6e425bf107213e12a8 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Fri, 4 Oct 2024 18:28:37 -0700
Subject: [PATCH 1/3] Effect analysis: correctly detect `(f ? a : b)` as
nonblockin
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/112148
>From f34e4ac55d04bcd8e34bef57afec5a39fbf2acb9 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Sun, 13 Oct 2024 11:35:10 -0700
Subject: [PATCH 1/3] [Clang] Diagnose ObjC @autoreleasepool statements as
functio
dougsonos wrote:
I spent a bit more time trying to extract a reduction from libc++ today but
failed. Here are the diagnostics that (fortunately) were enough to devise the
fix in this PR:
```c++
./nonblocking-wip.cpp:54:30: warning: function with 'nonblocking' attribute
must not call non-'
@@ -985,6 +986,9 @@ class Analyzer {
if (auto *Dtor = dyn_cast(CurrentCaller.CDecl))
followDestructor(dyn_cast(Dtor->getParent()), Dtor);
+ if (auto *FD = dyn_cast(CurrentCaller.CDecl))
+TrailingRequiresClause = FD->getTrailingRequiresClause();
-
https://github.com/dougsonos deleted
https://github.com/llvm/llvm-project/pull/114266
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dougsonos edited
https://github.com/llvm/llvm-project/pull/114266
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -985,6 +986,9 @@ class Analyzer {
if (auto *Dtor = dyn_cast(CurrentCaller.CDecl))
followDestructor(dyn_cast(Dtor->getParent()), Dtor);
+ if (auto *FD = dyn_cast(CurrentCaller.CDecl))
+TrailingRequiresClause = FD->getTrailingRequiresClause();
-
dougsonos wrote:
> > is a builtin function `__is_constructible()`
>
> Technically a type trait not a function—those are different because they take
> _types_ as arguments, and there are separate expressions to represent them
> (`UnaryExprOrTypeTraitExpr`, `TypeTraitExpr`, and a few more); mayb
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/114266
>From 6a8a3f21eb23b8b7d63bd8b0fb6e2e85ff1951df Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Wed, 30 Oct 2024 09:53:58 -0700
Subject: [PATCH 1/3] [clang] SemaFunctionEffects: When verifying a function,
igno
https://github.com/dougsonos created
https://github.com/llvm/llvm-project/pull/114266
Clearly there's an omission here, that a trailing `requires` clause in a called
function is being subject to effect analysis.
But despite many hours of effort I haven't been able to create a self-contained
r
dougsonos wrote:
LGTM
https://github.com/llvm/llvm-project/pull/113979
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/114266
>From 6a8a3f21eb23b8b7d63bd8b0fb6e2e85ff1951df Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Wed, 30 Oct 2024 09:53:58 -0700
Subject: [PATCH 1/2] [clang] SemaFunctionEffects: When verifying a function,
igno
dougsonos wrote:
I was able to (manually) extract a reduction from libc++ and write a test that
exposed the issue / verified that it's fixed. It's also here:
https://godbolt.org/z/9absooo6G
https://github.com/llvm/llvm-project/pull/114266
___
cfe-com
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/109855
>From 085965b324efde41168c5d51db3a368578d3458f Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Mon, 23 Sep 2024 14:44:32 -0700
Subject: [PATCH 1/7] Add clang/docs/FunctionEffectAnalysis.rst.
---
clang/docs/F
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/109855
>From 085965b324efde41168c5d51db3a368578d3458f Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Mon, 23 Sep 2024 14:44:32 -0700
Subject: [PATCH 1/6] Add clang/docs/FunctionEffectAnalysis.rst.
---
clang/docs/F
dougsonos wrote:
@Sirraide, thanks for the excellent feedback. I've incorporated all of your
suggestions.
https://github.com/llvm/llvm-project/pull/109855
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/l
dougsonos wrote:
@cjappl please merge at will. Thank you!
https://github.com/llvm/llvm-project/pull/109855
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -986,9 +987,22 @@ class Analyzer {
if (auto *Dtor = dyn_cast(CurrentCaller.CDecl))
followDestructor(dyn_cast(Dtor->getParent()), Dtor);
- if (auto *FD = dyn_cast(CurrentCaller.CDecl))
+ if (auto *FD = dyn_cast(CurrentCaller.CDecl)) {
Trailin
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/115342
>From a0b6093fcf24ade7ce9ee0c3d65f679a41751225 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Tue, 5 Nov 2024 13:35:50 -0800
Subject: [PATCH 1/2] [Clang] SemaFunctionEffects: When verifying a function,
ignor
dougsonos wrote:
> @dougsonos Oh also, I think I may have mentioned this before, but maybe you
> might want to email Chris to obtain [commit
> access](https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access)
> since you’re the main person maintaining all of the function effects code
https://github.com/dougsonos updated
https://github.com/llvm/llvm-project/pull/115342
>From a0b6093fcf24ade7ce9ee0c3d65f679a41751225 Mon Sep 17 00:00:00 2001
From: Doug Wyatt
Date: Tue, 5 Nov 2024 13:35:50 -0800
Subject: [PATCH 1/2] [Clang] SemaFunctionEffects: When verifying a function,
ignor
https://github.com/dougsonos closed
https://github.com/llvm/llvm-project/pull/115342
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dougsonos wrote:
Ping
https://github.com/llvm/llvm-project/pull/109855
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
dougsonos wrote:
> Also, @dougsonos, can you make a godbolt link for this? I’m trying to
> reproduce it, but compiling the code you provided doesn’t result in any
> diagnostics for me, but I might be missing a flag.
Yeah, I can't repro in godbolt either. This shows that all the effect analysis
301 - 400 of 456 matches
Mail list logo