[PATCH] PrettyStackTrace guards around ASTReader

Richard Smith richard at metafoo.co.uk
Thu Nov 13 17:42:48 PST 2014


Yeah, seems like a good idea to me. It's interesting that the places you added this aren't the same places we construct `Deserializing` objects. I wonder if there are good reasons for the differences.

================
Comment at: lib/Serialization/ASTReader.cpp:70
@@ +69,3 @@
+      "\n\n*** Crashed while deserializing from an AST file (e.g. PCH or PCM)."
+      "\n*** Consider clearing your module cache.\n";
+  public:
----------------
I'm not sure I like this as a user-facing message; the revision number is supposed to be part of the configuration, so the 'clear your module cache' advice really only applies to people actively hacking on Clang. But I'm fine with the change with or without this line.

================
Comment at: lib/Serialization/ASTReader.cpp:7521
@@ -7490,2 +7520,3 @@
 Module *ASTReader::getModule(unsigned ID) {
+  PrettyStackTraceASTReader StackTraceRAII;
   return getSubmodule(ID);
----------------
This function doesn't do any reading from the AST file.

================
Comment at: lib/Serialization/ASTReader.cpp:7560
@@ -7527,2 +7559,3 @@
 uint32_t ASTReader::GetNumExternalSelectors() {
+  PrettyStackTraceASTReader StackTraceRAII;
   // ID 0 (the null selector) is considered an external selector.
----------------
This function doesn't do any reading from the AST file.

http://reviews.llvm.org/D6138






More information about the cfe-commits mailing list