<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Nov 1, 2015 at 12:01 AM, James Dennett <span dir="ltr"><<a href="mailto:jdennett@googlers.com" target="_blank">jdennett@googlers.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span class="">On Sat, Oct 31, 2015 at 5:50 PM, Nico Weber via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>I think we more commonly say "function pointer":</div><div><br></div><div>$ grep 'pointer-to-function' include/clang/Basic/Diagnostic*td | wc -l</div><div>       3</div><div>$ grep 'function pointer' include/clang/Basic/Diagnostic*td | wc -l</div><div>       7</div><div><br></div><div>For "object pointer" and "pointer-to-object" it's currently a tie. For "member pointer" and "pointer-to-member", the former is more common too. We should probably make all of these consistent – any preferences? "foo pointer" reads easier to me than "pointer-to-foo", but I'm not a native speaker.</div></div></blockquote><div><br></div></span><div>The C++ Standard has some unfortunate terminology here:</div><div>
                
        
        
                <div title="Page 95">
                        <div>
                                <div>
                                        <ol start="2" style="list-style-type:none">
                                                <li>
                                                        <p><span style="font-size:10pt;font-family:LMRoman10">The type of a pointer to </span><span style="font-size:10pt;font-family:LMTypewriter10">void </span><span style="font-size:10pt;font-family:LMRoman10">or a pointer to an object type is called an </span><span style="font-size:10pt;font-family:LMRoman10;font-style:italic">object pointer type</span><span style="font-size:10pt;font-family:LMRoman10">. [ </span><span style="font-size:10pt;font-family:LMRoman10;font-style:italic">Note: </span><span style="font-size:10pt;font-family:LMRoman10">A pointer
to </span><span style="font-size:10pt;font-family:LMTypewriter10">void </span><span style="font-size:10pt;font-family:LMRoman10">does not have a pointer-to-object type, however, because </span><span style="font-size:10pt;font-family:LMTypewriter10">void </span><span style="font-size:10pt;font-family:LMRoman10">is not an object type. </span><span style="font-size:10pt;font-family:LMRoman10;font-style:italic">— end note </span><span style="font-size:10pt;font-family:LMRoman10">] </span></p></li></ol>That makes standardizing on either problematic, because they have different meanings (any pointer-to-object type is an object pointer type, but not vice versa).</div></div></div></div></div></div></div></blockquote><div><br></div><div>That distinction is probably lost on 99% of clang users though – in general, I think clang tries to not use standardese in its diagnostics too much (there are e.g. 0 diagnostics that mention either of prvalue, xvalue, glvalue).</div><div><br>Also, since this diagnostic here talks about conversion of function pointers to void pointers, "pointer-to-object" looks like the wrong term to use in this case even if we tried to stick with the standard's wording, right?</div></div></div></div>