<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Nov 2, 2012, at 18:40 , Anna Zaks <<a href="mailto:ganna@apple.com">ganna@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><br>On Nov 1, 2012, at 6:54 PM, Jordan Rose <<a href="mailto:jordan_rose@apple.com">jordan_rose@apple.com</a>> wrote:<br><br><blockquote type="cite">Author: jrose<br>Date: Thu Nov  1 20:54:06 2012<br>New Revision: 167276<br><br>URL: <a href="http://llvm.org/viewvc/llvm-project?rev=167276&view=rev">http://llvm.org/viewvc/llvm-project?rev=167276&view=rev</a><br>Log:<br>[analyzer] Use nice macros for the common ProgramStateTraits (map, set, list).<br><br>Also, move the REGISTER_*_WITH_PROGRAMSTATE macros to ProgramStateTrait.h.<br><br></blockquote><br>I prefer the macros to live in the CheckerContext.h. I did see your comment about the original commit.<br><br>As you pointed out, the negatives of putting the macros into the CheckerContext is that the 2 internal users(maybe more in the future) will not be able to use it.<br><br>However, on the positive side, someone writing a checker would have all the main building blocks in one header file (no need to look in the obscure ProgramStateTrait.h). <br><br>Anyway, that's the reason I did not move it.</blockquote><br></div><div>CheckerContext.h includes ExprEngine.h, which includes ProgramStateTrait.h, so they don't have to <i>include</i> a second header file. And I'd be fine with adding an explicit include to CheckerContext.h. But you're right that someone <i>looking</i> for the macros and not knowing the names ahead of time would have to look somewhere else.</div><div><br></div><div>Hm. Let me think about it for a bit.</div><div><br></div><div>Jordan</div></body></html>