Skip to content

Commit a90d63d

Browse files
committed
[NFC] Add PrettyStackTraces to ObjC forward decls
Helps identify the cause of some crashes.
1 parent 4c684d7 commit a90d63d

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/PrintAsObjC/ModuleContentsWriter.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
#include "swift/AST/ExistentialLayout.h"
1818
#include "swift/AST/Module.h"
19+
#include "swift/AST/PrettyStackTrace.h"
1920
#include "swift/AST/ProtocolConformance.h"
2021
#include "swift/AST/SwiftNameTranslation.h"
2122
#include "swift/AST/TypeDeclFinder.h"
@@ -235,6 +236,8 @@ class ModuleWriter {
235236
}
236237

237238
bool forwardDeclareMemberTypes(DeclRange members, const Decl *container) {
239+
PrettyStackTraceDecl
240+
entry("printing forward declarations needed by members of", container);
238241
switch (container->getKind()) {
239242
case DeclKind::Class:
240243
case DeclKind::Protocol:
@@ -247,6 +250,7 @@ class ModuleWriter {
247250
bool hadAnyDelayedMembers = false;
248251
SmallVector<ValueDecl *, 4> nestedTypes;
249252
for (auto member : members) {
253+
PrettyStackTraceDecl loopEntry("printing for member", member);
250254
auto VD = dyn_cast<ValueDecl>(member);
251255
if (!VD || !printer.shouldInclude(VD))
252256
continue;
@@ -269,6 +273,8 @@ class ModuleWriter {
269273
ReferencedTypeFinder::walk(VD->getInterfaceType(),
270274
[&](ReferencedTypeFinder &finder,
271275
const TypeDecl *TD) {
276+
PrettyStackTraceDecl
277+
entry("walking its interface type, currently at", TD);
272278
if (TD == container)
273279
return;
274280

0 commit comments

Comments
 (0)