[llvm] [TySan] Support the new size-aware TBAA metadata format (PR #226568)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 25 11:59:35 PDT 2026
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff origin/main HEAD --extensions h,cpp -- llvm/include/llvm/IR/TBAAMetadata.h llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp llvm/lib/IR/MDBuilder.cpp llvm/lib/IR/Verifier.cpp llvm/lib/Transforms/Instrumentation/TypeSanitizer.cpp llvm/unittests/IR/MDBuilderTest.cpp --diff_from_common_commit
``````````
:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/include/llvm/IR/TBAAMetadata.h b/llvm/include/llvm/IR/TBAAMetadata.h
index 2ca934192..3f9a14415 100644
--- a/llvm/include/llvm/IR/TBAAMetadata.h
+++ b/llvm/include/llvm/IR/TBAAMetadata.h
@@ -50,8 +50,7 @@ inline bool isNewFormatTypeNode(const MDNode *N) {
/// This is a simple wrapper around an MDNode which provides a higher-level
/// interface by hiding the details of how alias analysis information is encoded
/// in its operands.
-template<typename MDNodeTy>
-class TBAANodeImpl {
+template <typename MDNodeTy> class TBAANodeImpl {
MDNodeTy *Node = nullptr;
public:
@@ -102,8 +101,7 @@ using MutableTBAANode = TBAANodeImpl<MDNode>;
/// This is a simple wrapper around an MDNode which provides a
/// higher-level interface by hiding the details of how alias analysis
/// information is encoded in its operands.
-template<typename MDNodeTy>
-class TBAAStructTagNodeImpl {
+template <typename MDNodeTy> class TBAAStructTagNodeImpl {
/// This node should be created with createTBAAAccessTag().
MDNodeTy *Node;
@@ -186,9 +184,7 @@ public:
}
/// getId - Return type identifier.
- Metadata *getId() const {
- return Node->getOperand(isNewFormat() ? 2 : 0);
- }
+ Metadata *getId() const { return Node->getOperand(isNewFormat() ? 2 : 0); }
unsigned getNumFields() const {
unsigned FirstFieldOpNo = isNewFormat() ? 3 : 1;
diff --git a/llvm/lib/IR/MDBuilder.cpp b/llvm/lib/IR/MDBuilder.cpp
index 102ad2a65..def60615f 100644
--- a/llvm/lib/IR/MDBuilder.cpp
+++ b/llvm/lib/IR/MDBuilder.cpp
@@ -15,8 +15,8 @@
#include "llvm/IR/Constants.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Metadata.h"
-#include "llvm/IR/TBAAMetadata.h"
#include "llvm/IR/ProfDataUtils.h"
+#include "llvm/IR/TBAAMetadata.h"
using namespace llvm;
MDString *MDBuilder::createString(StringRef Str) {
diff --git a/llvm/unittests/IR/MDBuilderTest.cpp b/llvm/unittests/IR/MDBuilderTest.cpp
index 89000332d..78ceb6db9 100644
--- a/llvm/unittests/IR/MDBuilderTest.cpp
+++ b/llvm/unittests/IR/MDBuilderTest.cpp
@@ -112,7 +112,8 @@ TEST_F(MDBuilderTest, createMutableTBAAAccessTag) {
// Old-format scalar type node: { name, parent, offset }.
MDNode *OldTy = MDHelper.createTBAANode("Scalar", Root);
// New-format scalar type node: { parent, size, name }.
- MDNode *NewTy = MDHelper.createTBAATypeNode(Root, 4, MDHelper.createString("Scalar"));
+ MDNode *NewTy =
+ MDHelper.createTBAATypeNode(Root, 4, MDHelper.createString("Scalar"));
// A tag with no immutability flag is already mutable and is returned as is.
MDNode *OldMutable = MDHelper.createTBAAStructTagNode(OldTy, OldTy, 0);
``````````
</details>
https://github.com/llvm/llvm-project/pull/226568
More information about the llvm-commits
mailing list