On Oct 14, 2010, at 12:01 AM, Magnus Reftel wrote:

> Hi,
> 
> I recently needed to inspect the conditional stack of the preprocessor
> for a small tool I wrote that annotates source code. I think the
> ability to see why the preprocessor is including/excluding a line
> could be useful for others. Attached, please find a trivial patch that
> adds a public accessor function for ConditionalStack. I would much
> appreciate if this could be applied to the trunk.

--- llvm-116392/tools/clang/include/clang/Lex/PreprocessorLexer.h       
2010-10-13 07:16:35.453569900 +0200
+++ 
llvm-116392-ConditionalStack/tools/clang/include/clang/Lex/PreprocessorLexer.h  
    2010-10-13 14:57:57.185845900 +0200
@@ -155,6 +155,10 @@
   /// getFileEntry - Return the FileEntry corresponding to this FileID.  Like
   /// getFileID(), this only works for lexers with attached preprocessors.
   const FileEntry *getFileEntry() const;
+
+  llvm::SmallVector<PPConditionalInfo, 4> getConditionalStack() const {
+    return ConditionalStack;
+  }
 };

I'd rather not force a copy to access this data; so, I've added an 
iterator-based interface to the conditional stack in Clang r116703.

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

Reply via email to