[clang] [llvm] [analysis] Software Bill of Mitigations (PR #130103)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Mar 10 06:31:30 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 15edf8725a8044e5cb681a5773e0ada1249690cb f0baa6fe14e67f53291ef6423ef6ea67903031ab --extensions cpp,h -- clang/lib/CodeGen/MitigationTagging.cpp clang/lib/CodeGen/MitigationTagging.h clang/unittests/CodeGen/MitigationTaggingTest.cpp llvm/include/llvm/Analysis/MitigationAnalysis.h llvm/lib/Analysis/MitigationAnalysis.cpp clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGClass.cpp clang/lib/CodeGen/CGDecl.cpp clang/lib/CodeGen/CGExpr.cpp clang/lib/CodeGen/CGExprCXX.cpp clang/lib/CodeGen/CodeGenModule.cpp clang/lib/Driver/ToolChains/Clang.cpp llvm/lib/Passes/PassBuilder.cpp llvm/lib/Passes/PassBuilderPipelines.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/lib/CodeGen/MitigationTagging.cpp b/clang/lib/CodeGen/MitigationTagging.cpp
index 82a56ac87e..2f6f4c4a0d 100644
--- a/clang/lib/CodeGen/MitigationTagging.cpp
+++ b/clang/lib/CodeGen/MitigationTagging.cpp
@@ -77,15 +77,15 @@ void AttachMitigationMetadataToFunction(llvm::Function &F,
llvm::MDNode *CombinedMD = llvm::MDNode::get(Context, MDs);
F.setMetadata(kindID, CombinedMD);
} else {
- F.setMetadata(kindID,
- llvm::MDNode::get(Context, std::vector<llvm::Metadata *> {NewMD}));
+ F.setMetadata(kindID, llvm::MDNode::get(
+ Context, std::vector<llvm::Metadata *>{NewMD}));
}
}
void AttachMitigationMetadataToFunction(CodeGenFunction &CGF,
enum MitigationKey key, bool enabled) {
- AttachMitigationMetadataToFunction(*(CGF.CurFn), key, enabled,
- CGF.CGM.getCodeGenOpts().MitigationAnalysis);
+ AttachMitigationMetadataToFunction(
+ *(CGF.CurFn), key, enabled, CGF.CGM.getCodeGenOpts().MitigationAnalysis);
}
} // namespace CodeGen
diff --git a/clang/unittests/CodeGen/MitigationTaggingTest.cpp b/clang/unittests/CodeGen/MitigationTaggingTest.cpp
index 1e31b00c4e..7325cc0d64 100644
--- a/clang/unittests/CodeGen/MitigationTaggingTest.cpp
+++ b/clang/unittests/CodeGen/MitigationTaggingTest.cpp
@@ -20,13 +20,12 @@ using namespace clang;
namespace {
TEST(MitigationTaggingTest, FlagDisabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::LangOptions LO;
LO.CPlusPlus = 1;
@@ -39,7 +38,8 @@ TEST(MitigationTaggingTest, FlagDisabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -47,13 +47,12 @@ TEST(MitigationTaggingTest, FlagDisabled) {
}
TEST(MitigationTaggingTest, MetadataEnabledOnly) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -67,7 +66,8 @@ TEST(MitigationTaggingTest, MetadataEnabledOnly) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -76,7 +76,8 @@ TEST(MitigationTaggingTest, MetadataEnabledOnly) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
@@ -106,13 +107,12 @@ TEST(MitigationTaggingTest, MetadataEnabledOnly) {
}
TEST(MitigationTaggingTest, AutoVarInitZeroEnabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -127,7 +127,8 @@ TEST(MitigationTaggingTest, AutoVarInitZeroEnabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -136,7 +137,8 @@ TEST(MitigationTaggingTest, AutoVarInitZeroEnabled) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
@@ -166,13 +168,12 @@ TEST(MitigationTaggingTest, AutoVarInitZeroEnabled) {
}
TEST(MitigationTaggingTest, StackClashEnabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -187,7 +188,8 @@ TEST(MitigationTaggingTest, StackClashEnabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -196,7 +198,8 @@ TEST(MitigationTaggingTest, StackClashEnabled) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
@@ -226,13 +229,12 @@ TEST(MitigationTaggingTest, StackClashEnabled) {
}
TEST(MitigationTaggingTest, StackProtectorEnabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -247,7 +249,8 @@ TEST(MitigationTaggingTest, StackProtectorEnabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -256,7 +259,8 @@ TEST(MitigationTaggingTest, StackProtectorEnabled) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
@@ -286,13 +290,12 @@ TEST(MitigationTaggingTest, StackProtectorEnabled) {
}
TEST(MitigationTaggingTest, StackProtectorStrongEnabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -307,7 +310,8 @@ TEST(MitigationTaggingTest, StackProtectorStrongEnabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -316,7 +320,8 @@ TEST(MitigationTaggingTest, StackProtectorStrongEnabled) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
@@ -346,13 +351,12 @@ TEST(MitigationTaggingTest, StackProtectorStrongEnabled) {
}
TEST(MitigationTaggingTest, StackProtectorAllEnabled) {
- const char TestProgram[] =
- "void HasStackProtector(int x, int y) "
- "{ "
- " char buf[x]; "
- " while(y) "
- " buf[y--] = 0; "
- "} ";
+ const char TestProgram[] = "void HasStackProtector(int x, int y) "
+ "{ "
+ " char buf[x]; "
+ " while(y) "
+ " buf[y--] = 0; "
+ "} ";
clang::CodeGenOptions CGO;
CGO.MitigationAnalysis = true;
@@ -367,7 +371,8 @@ TEST(MitigationTaggingTest, StackProtectorAllEnabled) {
clang::ParseAST(Compiler.compiler.getSema(), false, false);
auto M =
- static_cast<clang::CodeGenerator&>(Compiler.compiler.getASTConsumer()).GetModule();
+ static_cast<clang::CodeGenerator &>(Compiler.compiler.getASTConsumer())
+ .GetModule();
auto FuncPtr = M->begin();
auto *MD = FuncPtr->getMetadata("security_mitigations");
@@ -376,7 +381,8 @@ TEST(MitigationTaggingTest, StackProtectorAllEnabled) {
// Get All Enabled Mitigations
std::unordered_map<std::string, bool> MDs;
for (unsigned i = 0, n = MD->getNumOperands(); i != n; ++i) {
- if (MD->getOperand(i) == nullptr) continue;
+ if (MD->getOperand(i) == nullptr)
+ continue;
auto *node = dyn_cast<MDNode>(MD->getOperand(i));
if (node == nullptr)
``````````
</details>
https://github.com/llvm/llvm-project/pull/130103
More information about the cfe-commits
mailing list