<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>Hi Aaron,</div><div><br></div><div>Thanks for the suggestions again. Here is the updated patch.</div><div><br></div><div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite"><blockquote type="cite"><blockquote type="cite">#include "clang/AST/Decl.h"<br>+#include "clang/AST/Expr.h"<br></blockquote><br>This include should not be required here.<br></blockquote><br>This is required to call printPretty on the value expression in LoopHintAttr.<br></blockquote><br>Ugh. That's unfortunate. Perhaps ClangAttrEmitter needs to understand<br>that some AdditionalMembers are meant for the class declaration<br>(Attrs.inc), and others are meant for the class definition<br>(AttrImpl.inc)…</div></blockquote><div><br></div><div>Looks like that might be tricky. I think the easiest way to do that would be to modify tablegen to use an AdditionalMembersImpl field that would contain the implementation of methods defined in the AdditionalMembers field.</div><div><br></div><div>I can try to do that before I leave, but with only 2 more days it is unlikely that I will be able to finish it.</div><div><br></div><div><br></div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">I was thinking of parsing nonsense (like a fuzzer):<br><br>#pragma clang loop vectorize_width(1+(^*/2 * ()<br>#pragma clang loop vectorize_width(1+(-0[0]))))))<br><br>Just to ensure that we always recover gracefully from crazy input.<br></div></blockquote><div><br></div><div>I added the suggested tests. No problems.</div><div><br></div><div>Tyler</div><div><br></div><div></div></div></body></html>