Author: Yitzhak Mandelbaum
Date: 2020-06-26T14:23:25Z
New Revision: 056a539e570a49e27f88f4555d42f00be0500749
URL:
https://github.com/llvm/llvm-project/commit/056a539e570a49e27f88f4555d42f00be0500749
DIFF:
https://github.com/llvm/llvm-project/commit/056a539e570a49e27f88f4555d42f00be0500749.diff
Author: Yitzhak Mandelbaum
Date: 2020-06-26T16:17:28Z
New Revision: 30deabf89f93f724315e803ebcb2df09b8d36f2a
URL:
https://github.com/llvm/llvm-project/commit/30deabf89f93f724315e803ebcb2df09b8d36f2a
DIFF:
https://github.com/llvm/llvm-project/commit/30deabf89f93f724315e803ebcb2df09b8d36f2a.diff
Author: Andy Soffer
Date: 2020-06-30T15:03:07Z
New Revision: 9945bd5911636e7f821ac82fdcf8fdb22126e7dc
URL:
https://github.com/llvm/llvm-project/commit/9945bd5911636e7f821ac82fdcf8fdb22126e7dc
DIFF:
https://github.com/llvm/llvm-project/commit/9945bd5911636e7f821ac82fdcf8fdb22126e7dc.diff
LOG: A
Author: Yitzhak Mandelbaum
Date: 2020-08-11T16:35:36Z
New Revision: 645dd1b3bf8d976683c72b9faf501d6f0b16326e
URL:
https://github.com/llvm/llvm-project/commit/645dd1b3bf8d976683c72b9faf501d6f0b16326e
DIFF:
https://github.com/llvm/llvm-project/commit/645dd1b3bf8d976683c72b9faf501d6f0b16326e.diff
Author: Yitzhak Mandelbaum
Date: 2020-08-11T16:47:14Z
New Revision: d8c1f43dcc949fda5ce37a122d1a0d92975de82c
URL:
https://github.com/llvm/llvm-project/commit/d8c1f43dcc949fda5ce37a122d1a0d92975de82c
DIFF:
https://github.com/llvm/llvm-project/commit/d8c1f43dcc949fda5ce37a122d1a0d92975de82c.diff
Author: Yitzhak Mandelbaum
Date: 2020-05-05T10:38:31-04:00
New Revision: c5b1a0352535e138af867f7b63cf5b4793fd6de7
URL:
https://github.com/llvm/llvm-project/commit/c5b1a0352535e138af867f7b63cf5b4793fd6de7
DIFF:
https://github.com/llvm/llvm-project/commit/c5b1a0352535e138af867f7b63cf5b4793fd6de7.
Author: Yitzhak Mandelbaum
Date: 2022-09-09T17:13:52Z
New Revision: abc16c7a5b0a63d14172262153608b3d24de957f
URL:
https://github.com/llvm/llvm-project/commit/abc16c7a5b0a63d14172262153608b3d24de957f
DIFF:
https://github.com/llvm/llvm-project/commit/abc16c7a5b0a63d14172262153608b3d24de957f.diff
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/71384
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/70848
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Really nice!
https://github.com/llvm/llvm-project/pull/70848
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,55 @@
+//===-- SimplifyConstraints.h ---*- 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
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
@@ -0,0 +1,183 @@
+//===-- SimplifyConstraints.cpp -*- 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: Ap
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/71527
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/71547
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/71654
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/72850
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand requested changes to this pull request.
Overall seemed good (mostly just piping), but I think we need more explanation
(on the review thread and somewhere appropriate in the code) of what exactly
determines whether an expression is "needed".
I was wondering, when readi
@@ -256,8 +259,12 @@ class JoinedStateBuilder {
// to enable building analyses like computation of dominators that
// initialize the state of each basic block differently.
return {AC.Analysis.typeErasedInitialElement(), AC.InitEnv.fork()};
+
if (All.size(
@@ -24,25 +24,35 @@
namespace clang {
namespace dataflow {
-/// Returns a map from statements to basic blocks that contain them.
-static llvm::DenseMap
-buildStmtToBasicBlockMap(const CFG &Cfg) {
- llvm::DenseMap StmtToBlock;
+/// Builds maps:
+/// - From statements to basic
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/72987
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/72985
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/70297
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/70437
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/75483
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -726,27 +726,69 @@ void Environment::setStorageLocation(const Expr &E,
StorageLocation &Loc) {
// so allow these as an exception.
assert(E.isGLValue() ||
E.getType()->isSpecificBuiltinType(BuiltinType::BuiltinFn));
- setStorageLocationInternal(E, Loc);
+ cons
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/75483
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -726,27 +726,69 @@ void Environment::setStorageLocation(const Expr &E,
StorageLocation &Loc) {
// so allow these as an exception.
assert(E.isGLValue() ||
E.getType()->isSpecificBuiltinType(BuiltinType::BuiltinFn));
- setStorageLocationInternal(E, Loc);
+ cons
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/76027
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/76027
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -489,8 +489,7 @@ Environment Environment::pushCall(const CallExpr *Call)
const {
if (const auto *MethodCall = dyn_cast(Call)) {
if (const Expr *Arg = MethodCall->getImplicitObjectArgument()) {
if (!isa(Arg))
- Env.ThisPointeeLoc =
- cast(ge
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/75170
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
This is amazing! I spent a while searching for changes to join/widen to account
for synthetic fields and then realized that (of course!) no special handling is
needed!
I also love that we now have the hooks we've wanted since the beginning.
@@ -73,7 +73,13 @@ class ScalarStorageLocation final : public StorageLocation {
///
/// Contains storage locations for all modeled fields of the record (also
/// referred to as "children"). The child map is flat, so accessible members of
-/// the base class are directly accesib
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/73860
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -492,6 +492,56 @@ transferCFGBlock(const CFGBlock &Block, AnalysisContext
&AC,
return State;
}
+static Environment initializeEnvironment(const Environment &InitEnv) {
ymand wrote:
Why not include this function as part of the Environment API? At the leas
@@ -54,6 +54,18 @@ void clang::dataflow::copyRecord(RecordStorageLocation &Src,
}
}
+ for (const auto &[Name, PropLocSrc] : Src.synthetic_fields()) {
+if (PropLocSrc->getType()->isRecordType()) {
+ copyRecord(*cast(PropLocSrc),
+ cast(Dst.getSyn
@@ -492,6 +492,56 @@ transferCFGBlock(const CFGBlock &Block, AnalysisContext
&AC,
return State;
}
+static Environment initializeEnvironment(const Environment &InitEnv) {
+ Environment ResultEnv = InitEnv.fork();
ymand wrote:
Why `fork`? The function name
@@ -92,11 +96,39 @@ class DataflowAnalysisContext {
/*Logger=*/nullptr});
~DataflowAnalysisContext();
+ /// Sets a callback that returns the names and types of the synthetic fields
+ /// to add to a `RecordStorageLocation` of a given type.
+
ymand wrote:
> @ymand Can you review?
sure
https://github.com/llvm/llvm-project/pull/73978
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/73978
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/73978
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -300,9 +300,10 @@ static void insertIfFunction(const Decl &D,
}
static MemberExpr *getMemberForAccessor(const CXXMemberCallExpr &C) {
- if (!C.getMethodDecl())
+ const auto *MethodDecl = dyn_cast_or_null(C.getCalleeDecl());
ymand wrote:
Please add a comm
https://github.com/ymand created https://github.com/llvm/llvm-project/pull/76746
Makes value equivalence require that the values have no properties, except in
the case of equivalence by pointer equality (if the pointers are equal, nothing
else is checked).
Fixes issue #76459.
>From 87cc967ebb2
https://github.com/ymand updated https://github.com/llvm/llvm-project/pull/76746
>From 3524e2bc42aa6f83a8ecb3ad892d4a7a33f31f03 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Tue, 2 Jan 2024 19:27:21 +
Subject: [PATCH] [clang][dataflow] Fix bug in `Value` comparison.
Makes value eq
@@ -27,9 +27,13 @@ static bool areEquivalentIndirectionValues(const Value &Val1,
}
bool areEquivalentValues(const Value &Val1, const Value &Val2) {
- return &Val1 == &Val2 || (Val1.getKind() == Val2.getKind() &&
-(isa(&Val1) ||
-
https://github.com/ymand approved this pull request.
Thanks!
https://github.com/llvm/llvm-project/pull/77193
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1215,7 +1215,7 @@ class CFG {
//======//
class BuildOptions {
-std::bitset alwaysAddMask;
ymand wrote:
Maybe add a comment explaining the new size? I see why it might be obvious,
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/77193
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand created https://github.com/llvm/llvm-project/pull/77481
Previously, we hard-coded the cap on block visits inside the framework. This
patch enables the caller to specify the cap in the APIs for running an analysis.
>From 34121d09cbb833c6462d516767f14b2cd05db82d Mon Sep 1
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/77453
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand updated https://github.com/llvm/llvm-project/pull/77481
>From 34121d09cbb833c6462d516767f14b2cd05db82d Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Thu, 4 Jan 2024 15:36:40 +
Subject: [PATCH 1/2] [clang][dataflow] Make cap on block visits configurable
by
https://github.com/ymand updated https://github.com/llvm/llvm-project/pull/76746
>From 3524e2bc42aa6f83a8ecb3ad892d4a7a33f31f03 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Tue, 2 Jan 2024 19:27:21 +
Subject: [PATCH 1/2] [clang][dataflow] Fix bug in `Value` comparison.
Makes valu
https://github.com/ymand updated https://github.com/llvm/llvm-project/pull/76746
>From 3524e2bc42aa6f83a8ecb3ad892d4a7a33f31f03 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Tue, 2 Jan 2024 19:27:21 +
Subject: [PATCH 1/3] [clang][dataflow] Fix bug in `Value` comparison.
Makes valu
@@ -53,8 +53,8 @@ TEST(ValueTest, EquivalentValuesWithDifferentPropsEquivalent)
{
TopBoolValue V2(A.makeAtomRef(Atom(3)));
V1.setProperty("foo", Prop1);
V2.setProperty("bar", Prop2);
- EXPECT_TRUE(areEquivalentValues(V1, V2));
- EXPECT_TRUE(areEquivalentValues(V2, V1))
https://github.com/ymand updated https://github.com/llvm/llvm-project/pull/76746
>From 3524e2bc42aa6f83a8ecb3ad892d4a7a33f31f03 Mon Sep 17 00:00:00 2001
From: Yitzhak Mandelbaum
Date: Tue, 2 Jan 2024 19:27:21 +
Subject: [PATCH 1/4] [clang][dataflow] Fix bug in `Value` comparison.
Makes valu
ymand wrote:
Martin, I've completed your requested changes. PTAL.
https://github.com/llvm/llvm-project/pull/76746
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -489,6 +482,31 @@ transferCFGBlock(const CFGBlock &Block, AnalysisContext
&AC,
}
AC.Log.recordState(State);
}
+
+ // If we have a terminator, evaluate its condition.
+ // This `Expr` may not appear as a `CFGElement` anywhere else, and it's
+ // important that w
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/77750
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/77750
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Aaron Jacobs
Date: 2022-06-30T12:46:57Z
New Revision: 007934343c4c18102b2b3e4195d356dbcdf9a3fc
URL:
https://github.com/llvm/llvm-project/commit/007934343c4c18102b2b3e4195d356dbcdf9a3fc
DIFF:
https://github.com/llvm/llvm-project/commit/007934343c4c18102b2b3e4195d356dbcdf9a3fc.diff
LOG:
Author: Yitzhak Mandelbaum
Date: 2022-03-25T16:44:34Z
New Revision: a184a0d8aae6efc1d7f19a900155b8694178d617
URL:
https://github.com/llvm/llvm-project/commit/a184a0d8aae6efc1d7f19a900155b8694178d617
DIFF:
https://github.com/llvm/llvm-project/commit/a184a0d8aae6efc1d7f19a900155b8694178d617.diff
Author: Eric Li
Date: 2022-03-28T15:39:46Z
New Revision: e334f044cdb5c0f4f549fc0380a6757e37ccb105
URL:
https://github.com/llvm/llvm-project/commit/e334f044cdb5c0f4f549fc0380a6757e37ccb105
DIFF:
https://github.com/llvm/llvm-project/commit/e334f044cdb5c0f4f549fc0380a6757e37ccb105.diff
LOG: [libT
Author: Yitzhak Mandelbaum
Date: 2022-03-31T13:21:39Z
New Revision: 7f076004e941fe60ab613a218da31a25b09b0925
URL:
https://github.com/llvm/llvm-project/commit/7f076004e941fe60ab613a218da31a25b09b0925
DIFF:
https://github.com/llvm/llvm-project/commit/7f076004e941fe60ab613a218da31a25b09b0925.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-01T15:01:32Z
New Revision: 36d4e84427a704599bfd8bd72edf46ecd27ff5e5
URL:
https://github.com/llvm/llvm-project/commit/36d4e84427a704599bfd8bd72edf46ecd27ff5e5
DIFF:
https://github.com/llvm/llvm-project/commit/36d4e84427a704599bfd8bd72edf46ecd27ff5e5.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-01T17:13:21Z
New Revision: ef1e1b3106a544389cf393647cda57b5b0642ef3
URL:
https://github.com/llvm/llvm-project/commit/ef1e1b3106a544389cf393647cda57b5b0642ef3
DIFF:
https://github.com/llvm/llvm-project/commit/ef1e1b3106a544389cf393647cda57b5b0642ef3.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-01T17:25:49Z
New Revision: 01db10365e935ccca9dc2ed449b23319e170eea0
URL:
https://github.com/llvm/llvm-project/commit/01db10365e935ccca9dc2ed449b23319e170eea0
DIFF:
https://github.com/llvm/llvm-project/commit/01db10365e935ccca9dc2ed449b23319e170eea0.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-04T12:20:43Z
New Revision: 506ec85ba82a39748f8fb07c15b93e1e958a9611
URL:
https://github.com/llvm/llvm-project/commit/506ec85ba82a39748f8fb07c15b93e1e958a9611
DIFF:
https://github.com/llvm/llvm-project/commit/506ec85ba82a39748f8fb07c15b93e1e958a9611.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-05T13:55:32Z
New Revision: d002495b949c1d0d2db22605f134d722a39637fa
URL:
https://github.com/llvm/llvm-project/commit/d002495b949c1d0d2db22605f134d722a39637fa
DIFF:
https://github.com/llvm/llvm-project/commit/d002495b949c1d0d2db22605f134d722a39637fa.diff
Author: Yitzhak Mandelbaum
Date: 2022-08-03T15:17:49Z
New Revision: 692e03039d1ee57c06c0cfae68b91bc5bfd99f6e
URL:
https://github.com/llvm/llvm-project/commit/692e03039d1ee57c06c0cfae68b91bc5bfd99f6e
DIFF:
https://github.com/llvm/llvm-project/commit/692e03039d1ee57c06c0cfae68b91bc5bfd99f6e.diff
Author: Yitzhak Mandelbaum
Date: 2022-03-15T15:10:32Z
New Revision: 4633c02eb0013ed38319b3fd708f59251bcd2aaf
URL:
https://github.com/llvm/llvm-project/commit/4633c02eb0013ed38319b3fd708f59251bcd2aaf
DIFF:
https://github.com/llvm/llvm-project/commit/4633c02eb0013ed38319b3fd708f59251bcd2aaf.diff
Author: Yitzhak Mandelbaum
Date: 2022-03-16T19:47:57Z
New Revision: e0aefb4f92782f0679470ee3834801977199a1b1
URL:
https://github.com/llvm/llvm-project/commit/e0aefb4f92782f0679470ee3834801977199a1b1
DIFF:
https://github.com/llvm/llvm-project/commit/e0aefb4f92782f0679470ee3834801977199a1b1.diff
Author: Yitzhak Mandelbaum
Date: 2022-03-18T14:39:23Z
New Revision: a36c2dd6d54c6ff854cb4872cd2831ed995e9275
URL:
https://github.com/llvm/llvm-project/commit/a36c2dd6d54c6ff854cb4872cd2831ed995e9275
DIFF:
https://github.com/llvm/llvm-project/commit/a36c2dd6d54c6ff854cb4872cd2831ed995e9275.diff
Author: Eric Li
Date: 2022-03-21T18:45:39Z
New Revision: 18440547d3520b78c9ab929685309419fc1fbe95
URL:
https://github.com/llvm/llvm-project/commit/18440547d3520b78c9ab929685309419fc1fbe95
DIFF:
https://github.com/llvm/llvm-project/commit/18440547d3520b78c9ab929685309419fc1fbe95.diff
LOG: [libT
Author: Yitzhak Mandelbaum
Date: 2022-03-21T19:06:59Z
New Revision: 8351726e6dba0ca08b477276f22361c2ab609ecf
URL:
https://github.com/llvm/llvm-project/commit/8351726e6dba0ca08b477276f22361c2ab609ecf
DIFF:
https://github.com/llvm/llvm-project/commit/8351726e6dba0ca08b477276f22361c2ab609ecf.diff
Author: Eric Li
Date: 2022-03-21T20:39:35Z
New Revision: 9edeceaece606125fa392e1648e549d256df423a
URL:
https://github.com/llvm/llvm-project/commit/9edeceaece606125fa392e1648e549d256df423a
DIFF:
https://github.com/llvm/llvm-project/commit/9edeceaece606125fa392e1648e549d256df423a.diff
LOG: [libT
Author: Yitzhak Mandelbaum
Date: 2022-04-13T19:49:50Z
New Revision: bbcf11f5af98a6e0fa008e180404cfc397f336fa
URL:
https://github.com/llvm/llvm-project/commit/bbcf11f5af98a6e0fa008e180404cfc397f336fa
DIFF:
https://github.com/llvm/llvm-project/commit/bbcf11f5af98a6e0fa008e180404cfc397f336fa.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-19T20:52:29Z
New Revision: eb2131bdbad3f74be2fcf236b4d6921612af47a9
URL:
https://github.com/llvm/llvm-project/commit/eb2131bdbad3f74be2fcf236b4d6921612af47a9
DIFF:
https://github.com/llvm/llvm-project/commit/eb2131bdbad3f74be2fcf236b4d6921612af47a9.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-20T17:01:55Z
New Revision: c8f822ad51951094504866049546bd2c3446728f
URL:
https://github.com/llvm/llvm-project/commit/c8f822ad51951094504866049546bd2c3446728f
DIFF:
https://github.com/llvm/llvm-project/commit/c8f822ad51951094504866049546bd2c3446728f.diff
Author: Greg Miller
Date: 2022-02-10T13:31:07Z
New Revision: d038faea4608f8f39602fb557666281c49de5722
URL:
https://github.com/llvm/llvm-project/commit/d038faea4608f8f39602fb557666281c49de5722
DIFF:
https://github.com/llvm/llvm-project/commit/d038faea4608f8f39602fb557666281c49de5722.diff
LOG: [
Author: Eric Li
Date: 2022-02-15T16:34:36Z
New Revision: d1e3235f604d65a62d25842305f54e43bd36681f
URL:
https://github.com/llvm/llvm-project/commit/d1e3235f604d65a62d25842305f54e43bd36681f
DIFF:
https://github.com/llvm/llvm-project/commit/d1e3235f604d65a62d25842305f54e43bd36681f.diff
LOG: [libT
Author: Yitzhak Mandelbaum
Date: 2022-04-25T15:05:50Z
New Revision: 37b4782e3e53cba265d26843f222134ed21e1974
URL:
https://github.com/llvm/llvm-project/commit/37b4782e3e53cba265d26843f222134ed21e1974
DIFF:
https://github.com/llvm/llvm-project/commit/37b4782e3e53cba265d26843f222134ed21e1974.diff
Author: Yitzhak Mandelbaum
Date: 2022-04-28T17:55:09Z
New Revision: 6c81b57237164319b5429ee33957004aa21db2fa
URL:
https://github.com/llvm/llvm-project/commit/6c81b57237164319b5429ee33957004aa21db2fa
DIFF:
https://github.com/llvm/llvm-project/commit/6c81b57237164319b5429ee33957004aa21db2fa.diff
Author: Yitzhak Mandelbaum
Date: 2022-05-04T20:56:56Z
New Revision: 9a8d33dbd8a851ccb9821d5d1346aa225398cadc
URL:
https://github.com/llvm/llvm-project/commit/9a8d33dbd8a851ccb9821d5d1346aa225398cadc
DIFF:
https://github.com/llvm/llvm-project/commit/9a8d33dbd8a851ccb9821d5d1346aa225398cadc.diff
Author: Yitzhak Mandelbaum
Date: 2022-05-06T13:30:01Z
New Revision: a45647d82b728a7ccdfe28338bb8a115dee7a735
URL:
https://github.com/llvm/llvm-project/commit/a45647d82b728a7ccdfe28338bb8a115dee7a735
DIFF:
https://github.com/llvm/llvm-project/commit/a45647d82b728a7ccdfe28338bb8a115dee7a735.diff
Author: Yitzhak Mandelbaum
Date: 2022-05-06T18:50:36Z
New Revision: 7e63a0d479dd3ccce20de5cddb0f138b537c08bb
URL:
https://github.com/llvm/llvm-project/commit/7e63a0d479dd3ccce20de5cddb0f138b537c08bb
DIFF:
https://github.com/llvm/llvm-project/commit/7e63a0d479dd3ccce20de5cddb0f138b537c08bb.diff
Author: Yitzhak Mandelbaum
Date: 2022-05-06T19:23:43Z
New Revision: ec34de1bfe5501fd3017ff867bc2481dc052788d
URL:
https://github.com/llvm/llvm-project/commit/ec34de1bfe5501fd3017ff867bc2481dc052788d
DIFF:
https://github.com/llvm/llvm-project/commit/ec34de1bfe5501fd3017ff867bc2481dc052788d.diff
https://github.com/ymand edited https://github.com/llvm/llvm-project/pull/84138
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand commented:
One high level question: is there a simpler path by which we avoid crashing on
derived types but also don't support them? It seems like there is a lot of
complexity required in getting this just right. Is it worth it (both in the
code itself and in terms of
@@ -64,39 +64,117 @@ static bool hasOptionalClassName(const CXXRecordDecl &RD) {
return false;
}
+static const CXXRecordDecl *getOptionalBaseClass(const CXXRecordDecl *RD) {
+ if (RD == nullptr)
+return nullptr;
+ if (hasOptionalClassName(*RD))
+return RD;
+
+ if
@@ -64,39 +64,117 @@ static bool hasOptionalClassName(const CXXRecordDecl &RD) {
return false;
}
+static const CXXRecordDecl *getOptionalBaseClass(const CXXRecordDecl *RD) {
+ if (RD == nullptr)
+return nullptr;
+ if (hasOptionalClassName(*RD))
+return RD;
+
+ if
@@ -64,39 +64,117 @@ static bool hasOptionalClassName(const CXXRecordDecl &RD) {
return false;
}
+static const CXXRecordDecl *getOptionalBaseClass(const CXXRecordDecl *RD) {
+ if (RD == nullptr)
+return nullptr;
+ if (hasOptionalClassName(*RD))
+return RD;
+
+ if
@@ -129,19 +207,19 @@ auto inPlaceClass() {
auto isOptionalNulloptConstructor() {
return cxxConstructExpr(
- hasOptionalType(),
+ hasOptionalOrDerivedType(),
ymand wrote:
Here and below: Why admit a derived class here? I would think that we don't
@@ -64,39 +64,117 @@ static bool hasOptionalClassName(const CXXRecordDecl &RD) {
return false;
}
+static const CXXRecordDecl *getOptionalBaseClass(const CXXRecordDecl *RD) {
+ if (RD == nullptr)
+return nullptr;
+ if (hasOptionalClassName(*RD))
+return RD;
+
+ if
https://github.com/ymand approved this pull request.
modulo Gabor's comments.
https://github.com/llvm/llvm-project/pull/85064
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/ymand approved this pull request.
https://github.com/llvm/llvm-project/pull/85072
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
101 - 200 of 668 matches
Mail list logo