[PATCH] D66361: Improve behavior in the case of stack exhaustion.
Aaron Ballman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Aug 19 07:38:53 PDT 2019
aaron.ballman added inline comments.
================
Comment at: include/clang/Basic/DiagnosticSemaKinds.td:14
let Component = "Sema" in {
-let CategoryName = "Semantic Issue" in {
+def warn_stack_exhausted : Warning<
+ "stack nearly exhausted; compilation time may suffer, and "
----------------
Should this be a Sema warning as opposed to a Basic warning? It seems to me that we may want to guard against similar stack exhaustion from the parser as well, wouldn't we?
================
Comment at: include/clang/Basic/Stack.h:43-47
+ if (LLVM_UNLIKELY(isStackNearlyExhausted())) {
+ runWithSufficientStackSpaceSlow(Diag, Fn);
+ } else {
+ Fn();
+ }
----------------
Elide braces.
================
Comment at: lib/Sema/SemaExpr.cpp:15070-15079
+ // Trivial default constructors and destructors are never actually used.
+ // FIXME: What about other special members?
+ if (Func->isTrivial() && !Func->hasAttr<DLLExportAttr>() &&
+ OdrUse == OdrUseContext::Used) {
+ if (auto *Constructor = dyn_cast<CXXConstructorDecl>(Func))
+ if (Constructor->isDefaultConstructor())
+ OdrUse = OdrUseContext::FormallyOdrUsed;
----------------
This seems unrelated to the patch?
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D66361/new/
https://reviews.llvm.org/D66361
More information about the cfe-commits
mailing list