<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Sun, Sep 4, 2016 at 6:40 PM Justin Bogner <<a href="mailto:mail@justinbogner.com">mail@justinbogner.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Chandler Carruth <<a href="mailto:chandlerc@google.com" target="_blank">chandlerc@google.com</a>> writes:<br>
> My 2 cents: get rid of LLVM_UNUSED_RESULT, and move to LLVM_NODISCARD.<br>
><br>
> For compilers that support it, it should be a strict superset of features and<br>
> functionality. The standard feature was written directly based on the clang<br>
> warn_unused_result stuff.<br>
><br>
> I would just migrate us onto the spelling and usage pattern that got<br>
> standardized. All we have to lose are warnings from compilers other than Clang<br>
> until they implement this feature. That seems like not a huge loss to me<br>
> honestly.<br>
<br>
You might be right. It seems a bit unfortunate that we'd lose these<br>
warnings on MSVC and gcc for the time being, but maybe that's better<br>
than the usability cost of having two macros that expand to the same<br>
thing.<br>
<br>
Do note though, if we do that this would mean clang is the only compiler<br>
we can support this on at all without -std=c++17, since [[nodiscard]]<br>
will trigger extension warnings in earlier standard modes.<br></blockquote><div><br></div><div>Yea, I dunno.</div><div><br></div><div>If you end up wanting two macros, I'd suggest:</div><div><br></div><div>LLVM_NODISCARD</div><div><br></div><div>which works exactly as [[nodiscard]], <span style="line-height:1.5">and</span></div><div><br></div><div>LLVM_NODISCARD_FUNCTION</div><div><br></div><div>which works the way our current macro works. My two cents.</div></div></div>