[llvm] [IR] Avoid UB in `SymbolTableListTraits` (PR #139096)
via llvm-commits
llvm-commits at lists.llvm.org
Sun May 11 00:25:36 PDT 2025
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 HEAD~1 HEAD --extensions h -- llvm/include/llvm/IR/BasicBlock.h llvm/include/llvm/IR/Function.h llvm/include/llvm/IR/Module.h llvm/include/llvm/IR/SymbolTableListTraits.h
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/llvm/include/llvm/IR/Function.h b/llvm/include/llvm/IR/Function.h
index d7768515b..63100568d 100644
--- a/llvm/include/llvm/IR/Function.h
+++ b/llvm/include/llvm/IR/Function.h
@@ -811,7 +811,7 @@ private:
return &Function::BasicBlocks;
}
- static size_t getSublistOffset(BasicBlock*) {
+ static size_t getSublistOffset(BasicBlock *) {
return offsetof(Function, BasicBlocks);
}
diff --git a/llvm/include/llvm/IR/Module.h b/llvm/include/llvm/IR/Module.h
index 42937c2a2..f93186d2e 100644
--- a/llvm/include/llvm/IR/Module.h
+++ b/llvm/include/llvm/IR/Module.h
@@ -610,7 +610,7 @@ private:
static GlobalListType Module::*getSublistAccess(GlobalVariable*) {
return &Module::GlobalList;
}
- static size_t getSublistOffset(GlobalVariable*) {
+ static size_t getSublistOffset(GlobalVariable *) {
return offsetof(Module, GlobalList);
}
friend class llvm::SymbolTableListTraits<llvm::GlobalVariable>;
@@ -623,7 +623,7 @@ public:
static FunctionListType Module::*getSublistAccess(Function*) {
return &Module::FunctionList;
}
- static size_t getSublistOffset(Function*) {
+ static size_t getSublistOffset(Function *) {
return offsetof(Module, FunctionList);
}
@@ -665,7 +665,7 @@ private: // Please use functions like insertAlias(), removeAlias() etc.
static AliasListType Module::*getSublistAccess(GlobalAlias*) {
return &Module::AliasList;
}
- static size_t getSublistOffset(GlobalAlias*) {
+ static size_t getSublistOffset(GlobalAlias *) {
return offsetof(Module, AliasList);
}
friend class llvm::SymbolTableListTraits<llvm::GlobalAlias>;
@@ -678,7 +678,7 @@ private: // Please use functions like insertAlias(), removeAlias() etc.
static IFuncListType Module::*getSublistAccess(GlobalIFunc*) {
return &Module::IFuncList;
}
- static size_t getSublistOffset(GlobalIFunc*) {
+ static size_t getSublistOffset(GlobalIFunc *) {
return offsetof(Module, IFuncList);
}
friend class llvm::SymbolTableListTraits<llvm::GlobalIFunc>;
diff --git a/llvm/include/llvm/IR/SymbolTableListTraits.h b/llvm/include/llvm/IR/SymbolTableListTraits.h
index e36acfa7b..456833fff 100644
--- a/llvm/include/llvm/IR/SymbolTableListTraits.h
+++ b/llvm/include/llvm/IR/SymbolTableListTraits.h
@@ -77,7 +77,8 @@ private:
/// getListOwner - Return the object that owns this list. If this is a list
/// of instructions, it returns the BasicBlock that owns them.
ItemParentClass *getListOwner() {
- size_t Offset = ItemParentClass::getSublistOffset(static_cast<ValueSubClass *>(nullptr));
+ size_t Offset = ItemParentClass::getSublistOffset(
+ static_cast<ValueSubClass *>(nullptr));
ListTy *Anchor = static_cast<ListTy *>(this);
return reinterpret_cast<ItemParentClass*>(reinterpret_cast<char*>(Anchor)-
Offset);
``````````
</details>
https://github.com/llvm/llvm-project/pull/139096
More information about the llvm-commits
mailing list