aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorBoaz Brickner <brickner@google.com>2024-10-18 10:11:14 +0200
committerGitHub <noreply@github.com>2024-10-18 10:11:14 +0200
commit09cc75e2ccc3616e1cb3b17f2fb99cb3bb323b12 (patch)
tree3fb09cfb81653281ca4a9647f3a2d71106d31ce4 /clang/lib/CodeGen/CodeGenModule.cpp
parent508fd966fb00428ccd1dd7ddeb636fb7393029ec (diff)
downloadllvm-09cc75e2ccc3616e1cb3b17f2fb99cb3bb323b12.zip
llvm-09cc75e2ccc3616e1cb3b17f2fb99cb3bb323b12.tar.gz
llvm-09cc75e2ccc3616e1cb3b17f2fb99cb3bb323b12.tar.bz2
[clang] Deduplicate the logic that only warns once when stack is almost full (#112552)
Zero diff in behavior.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenModule.cpp12
1 files changed, 2 insertions, 10 deletions
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 9a84a11..24655b8 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -342,7 +342,7 @@ CodeGenModule::CodeGenModule(ASTContext &C,
: Context(C), LangOpts(C.getLangOpts()), FS(FS), HeaderSearchOpts(HSO),
PreprocessorOpts(PPO), CodeGenOpts(CGO), TheModule(M), Diags(diags),
Target(C.getTargetInfo()), ABI(createCXXABI(*this)),
- VMContext(M.getContext()), VTables(*this),
+ VMContext(M.getContext()), VTables(*this), StackHandler(diags),
SanitizerMD(new SanitizerMetadata(*this)) {
// Initialize the type cache.
@@ -1595,17 +1595,9 @@ void CodeGenModule::ErrorUnsupported(const Decl *D, const char *Type) {
getDiags().Report(Context.getFullLoc(D->getLocation()), DiagID) << Msg;
}
-void CodeGenModule::warnStackExhausted(SourceLocation Loc) {
- // Only warn about this once.
- if (!WarnedStackExhausted) {
- getDiags().Report(Loc, diag::warn_stack_exhausted);
- WarnedStackExhausted = true;
- }
-}
-
void CodeGenModule::runWithSufficientStackSpace(SourceLocation Loc,
llvm::function_ref<void()> Fn) {
- clang::runWithSufficientStackSpace([&] { warnStackExhausted(Loc); }, Fn);
+ StackHandler.runWithSufficientStackSpace(Loc, Fn);
}
llvm::ConstantInt *CodeGenModule::getSize(CharUnits size) {