<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Nov 29, 2018, at 7:25 AM, via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" class="">cfe-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class="">Suggested compromise technique to at least get an initial set of numbers:<br class=""><br class="">1) Require a special, long, ugly flag name.<br class="">2) Make it a CC1 flag, requiring -Xclang ... to use.<br class="">3) Emit a warning by default (that cannot be suppressed with a -Wno-...<br class="">flag) when this flag is enabled.<br class=""></blockquote><br class="">And immune to -Werror I think?<br class=""></div></div></blockquote><div><br class=""></div><div>Right, that’s a requirement.</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><blockquote type="cite" class="">4) Commit to never including this flag in any upstream release. Either we<br class="">remove it before the next release branches or we revert it on the branch.<br class=""></blockquote><br class="">Add it to the release-manager's checklist so it doesn't slip through.<br class=""></div></div></blockquote><div><br class=""></div><div>Do we have a macro that’s turned on for official clang releases?</div><div><br class=""></div><br class=""><blockquote type="cite" class=""><div class=""><div class="">(I don't know if my users would be interested in this, but I have been<br class="">through the ugly-option-name dance before.)<br class="">--paulr<br class=""><br class=""><blockquote type="cite" class="">Most of the folks we're hoping to get performance data with are willing to<br class="">use a not-yet-released build of Clang. They won't have to actually patch<br class="">it in any way. They will have strong reminders to not deploy this in any<br class="">way due to the warning.<br class=""><br class="">Thoughts?</blockquote></div></div></blockquote><br class=""></div><div>I’m not sure this works as I have things set up right now. Here’s how you use my patch at the moment:</div><div><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div><div class="">  1. On the command-line:</div></div><div><div class=""><br class=""></div></div><div><div class="">    -ftrivial-auto-var-init=uninitialized (the default)</div></div><div><div class="">    -ftrivial-auto-var-init=pattern</div></div><div><div class="">    -ftrivial-auto-var-init=zero</div></div><div><div class=""><br class=""></div></div><div><div class="">  2. Using an attribute:</div></div><div><div class=""><br class=""></div></div><div><div class="">    int dont_initialize_me __attribute((trivial_auto_init("uninitialized")));</div></div><div><div class="">    int zero_me __attribute((trivial_auto_init("zero")));</div></div><div><div class="">    int pattern_me __attribute((trivial_auto_init("pattern")));</div></div></blockquote><div><br class=""></div><div>You’re proposing to change the “zero” command-line option only? Attribute as well?</div><div><br class=""></div><div>Long term I think we want to have a variety of choices, as you’ve proposed earlier in the thread (e.g. “load-pattern” and “random-pattern” are examples). With the current setup (uninitialized/pattern/zero) I can change the flags to be separate (and then your -Xclang thing works), but it’s a mismatch with the long-term approach.</div><div><br class=""></div><div>As flags / attributes are set up right now I can for sure rename “zero”.</div><div>It’s easy to add the warning (both if the command-line flag is use, and if the attribute is used).</div><div>I can also un-document “zero”, while also renaming it.</div><div>I can add a *separate* -Xclang option which is required to be set if the renamed “zero” is used. That would line up with your suggestion.</div><div><br class=""></div><div>WDYT?</div><div><br class=""></div></body></html>