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



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to