forked from conda-forge/clangdev-feedstock
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update ROOT patches for 6.28.4 (conda-forge#232)
automerged PR by conda-forge/automerge-action
- Loading branch information
Showing
20 changed files
with
396 additions
and
44 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,6 @@ docker_image: | |
target_platform: | ||
- linux-ppc64le | ||
variant: | ||
- root_62800 | ||
- root_62804 | ||
zlib: | ||
- '1.2' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,4 +13,4 @@ macos_machine: | |
target_platform: | ||
- osx-64 | ||
variant: | ||
- root_62800 | ||
- root_62804 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,4 +13,4 @@ macos_machine: | |
target_platform: | ||
- osx-arm64 | ||
variant: | ||
- root_62800 | ||
- root_62804 |
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
84 changes: 84 additions & 0 deletions
84
recipe/patches/root/0001-Deserialize-LValuePathSerializationHelper-s-type-pro.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
From b40dd66575e4fb81b8802d7a35bd14b28c54c37d Mon Sep 17 00:00:00 2001 | ||
From: Chuanqi Xu <[email protected]> | ||
Date: Tue, 6 Dec 2022 17:38:57 +0800 | ||
Subject: [PATCH 1/6] Deserialize LValuePathSerializationHelper's type properly | ||
|
||
Close https://github.com/llvm/llvm-project/issues/58716. | ||
|
||
Tested with libcxx's modules build. | ||
|
||
When we read the type of | ||
LValuePathSerializationHelper, we didn't read the correct type. We read | ||
the element type as its name suggests. But the problem here is that it | ||
looks like that both the usage and serialization use its type as the | ||
top level type. So here is the mismatch. | ||
|
||
Actually, the type of LValuePathSerializationHelper is never used after | ||
Deserialization without the assertion. So it doesn't matter for the | ||
release users. And this patch shouldn't change the behavior too. | ||
|
||
Reviewed By: erichkeane | ||
|
||
Differential Revision: https://reviews.llvm.org/D139406 | ||
--- | ||
include/clang/AST/APValue.h | 2 +- | ||
include/clang/AST/AbstractBasicReader.h | 5 +++-- | ||
lib/AST/APValue.cpp | 4 ++-- | ||
3 files changed, 6 insertions(+), 5 deletions(-) | ||
|
||
diff --git a/include/clang/AST/APValue.h b/include/clang/AST/APValue.h | ||
index 5f4ac02f53..4e22d6c844 100644 | ||
--- a/include/clang/AST/APValue.h | ||
+++ b/include/clang/AST/APValue.h | ||
@@ -238,7 +238,7 @@ public: | ||
} | ||
}; | ||
class LValuePathSerializationHelper { | ||
- const void *ElemTy; | ||
+ const void *Ty; | ||
|
||
public: | ||
ArrayRef<LValuePathEntry> Path; | ||
diff --git a/include/clang/AST/AbstractBasicReader.h b/include/clang/AST/AbstractBasicReader.h | ||
index 5505d661b4..ea09a6d74d 100644 | ||
--- a/include/clang/AST/AbstractBasicReader.h | ||
+++ b/include/clang/AST/AbstractBasicReader.h | ||
@@ -190,7 +190,8 @@ public: | ||
|
||
APValue::LValuePathSerializationHelper readLValuePathSerializationHelper( | ||
SmallVectorImpl<APValue::LValuePathEntry> &path) { | ||
- auto elemTy = asImpl().readQualType(); | ||
+ auto origTy = asImpl().readQualType(); | ||
+ auto elemTy = origTy; | ||
unsigned pathLength = asImpl().readUInt32(); | ||
for (unsigned i = 0; i < pathLength; ++i) { | ||
if (elemTy->template getAs<RecordType>()) { | ||
@@ -208,7 +209,7 @@ public: | ||
APValue::LValuePathEntry::ArrayIndex(asImpl().readUInt32())); | ||
} | ||
} | ||
- return APValue::LValuePathSerializationHelper(path, elemTy); | ||
+ return APValue::LValuePathSerializationHelper(path, origTy); | ||
} | ||
|
||
Qualifiers readQualifiers() { | ||
diff --git a/lib/AST/APValue.cpp b/lib/AST/APValue.cpp | ||
index 9a9233bc1e..b2bf04d628 100644 | ||
--- a/lib/AST/APValue.cpp | ||
+++ b/lib/AST/APValue.cpp | ||
@@ -156,10 +156,10 @@ void APValue::LValuePathEntry::Profile(llvm::FoldingSetNodeID &ID) const { | ||
|
||
APValue::LValuePathSerializationHelper::LValuePathSerializationHelper( | ||
ArrayRef<LValuePathEntry> Path, QualType ElemTy) | ||
- : ElemTy((const void *)ElemTy.getTypePtrOrNull()), Path(Path) {} | ||
+ : Ty((const void *)ElemTy.getTypePtrOrNull()), Path(Path) {} | ||
|
||
QualType APValue::LValuePathSerializationHelper::getType() { | ||
- return QualType::getFromOpaquePtr(ElemTy); | ||
+ return QualType::getFromOpaquePtr(Ty); | ||
} | ||
|
||
namespace { | ||
-- | ||
2.34.1 | ||
|
37 changes: 37 additions & 0 deletions
37
recipe/patches/root/0002-Do-not-evaluate-value-dependent-immediate-invocation.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
From d3c46d7eea97a03287d70f68abda8b59a492eb9b Mon Sep 17 00:00:00 2001 | ||
From: Evgeny Shulgin <[email protected]> | ||
Date: Fri, 25 Feb 2022 16:55:08 +0100 | ||
Subject: [PATCH 2/6] Do not evaluate value-dependent immediate invocations | ||
|
||
Value-dependent ConstantExprs are not meant to be evaluated. | ||
There is an assert in Expr::EvaluateAsConstantExpr that ensures this condition. | ||
But before this patch the method was called without prior check. | ||
|
||
Fixes https://github.com/llvm/llvm-project/issues/52768 | ||
|
||
Reviewed By: erichkeane | ||
|
||
Differential Revision: https://reviews.llvm.org/D119375 | ||
--- | ||
lib/Sema/SemaExpr.cpp | 5 ++++- | ||
1 file changed, 4 insertions(+), 1 deletion(-) | ||
|
||
diff --git a/lib/Sema/SemaExpr.cpp b/lib/Sema/SemaExpr.cpp | ||
index ca41bc619f..01280681d0 100644 | ||
--- a/lib/Sema/SemaExpr.cpp | ||
+++ b/lib/Sema/SemaExpr.cpp | ||
@@ -16662,7 +16662,10 @@ ExprResult Sema::CheckForImmediateInvocation(ExprResult E, FunctionDecl *Decl) { | ||
ConstantExpr::getStorageKind(Decl->getReturnType().getTypePtr(), | ||
getASTContext()), | ||
/*IsImmediateInvocation*/ true); | ||
- ExprEvalContexts.back().ImmediateInvocationCandidates.emplace_back(Res, 0); | ||
+ /// Value-dependent constant expressions should not be immediately | ||
+ /// evaluated until they are instantiated. | ||
+ if (!Res->isValueDependent()) | ||
+ ExprEvalContexts.back().ImmediateInvocationCandidates.emplace_back(Res, 0); | ||
return Res; | ||
} | ||
|
||
-- | ||
2.34.1 | ||
|
Oops, something went wrong.