<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Aug 26, 2010, at 6:53 AM, Ilya Mirsky wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi clang developers,<br><br>First, I would like to thank Douglas Gregor, who consistently helps and answers questions. I learn a lot from his replies, so Doug, I really appreciate it!<br></div></blockquote><div><br></div><div>You don't need to CC me with your questions, though; I'll see them on the list ;)</div><br><blockquote type="cite"><div dir="ltr">I'm working on a program that does a src-2-src transformations, and I have the following issues:<br>

<ol><li> For some Stmt, how can I get its parent Stmt. i.e. when Replacing a Stmt which forms an IF body, sometimes it requires placing the new code inside brackets (replacement of a single Stmt with a block of Stmts), or if I'm replacing a Stmt which is part of a compound expression I want to get the location of the semicolon, in order to insert some code right afterward.<br>

How can I achieve this?<br></li></ol></div></blockquote><div><br></div><div>This information isn't encoded directly in the AST. However, you can use the ParentMap (in include/clang/AST/ParentMap.h) to construct a mapping from child statements to parent statements.</div><blockquote type="cite"><div dir="ltr"><ol start="2"><li>Calling ParmVarDecl::getType::getAsString on the src code "const char *str" returns "TODO".<br>How can I get just the "char*", without the const?<br>I've tried to apply QualType::removeConst, QualType::removeCVRQualifiers but none seems to do any change.<br>

What is the right way to get the stripped type, without the CVR Qualifiers?<br></li></ol></div></blockquote><div>Removing qualifiers from a QualType only removes the top-level qualifiers, e.g., it would turn "const char * const" into "const char *". There is no convenience method to remove cv-qualifiers at all levels... you'll have to recursively decompose the type and rebuild it without any qualifiers (at each level).</div><blockquote type="cite"><div dir="ltr"><ol start="3"><li>Currently I'm working on VS, but I want to switch to eclipse (minGW), unfortunately I'm having problems with llvm in eclipse. I run cmake with eclipse CDT configuration, but when I try to compile in eclipse I get errors. When I try to link an llvm client to existing llvm libraries (built with VS) I also get multiple compilation errors (the include lib is specified).<br>

My assumption is that minGW is more strict than VS. Is this really the problem, or am I missing something?<br>Can anybody help me work it out?</li></ol></div></blockquote>I have no idea how to get Eclipse + MinGW to build Clang, sorry!</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>- Doug</div></body></html>