[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