<div class="gmail_quote">On Wed, Sep 5, 2012 at 9:06 PM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">Yes and no.  I was thinking more along the lines of a way to turn off</div>
the warning one-off.  Sort of like how you can silence "unused<br>
variable" warnings using (void) or self-assignment.  It may not be<br>
possible to do this here, so at the very least we would need a warning<br>
group for it.  -Wmicrosoft-dll doesn't seem quite right to me, but I<br>
don't have a better suggestion either.<br></blockquote><div><br></div><div>I changed it locally to use -Wmicrosoft-dll-attrs for these warnings. I see now what you meant, well if there is any suggestion on a good syntax to do it I can try do add it.</div>

<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">That would make sense, but I think that your patch doesn't address the<br>
underlying problem.<br>
<br>
void foo( void ) {<br>
        __declspec( dllimport ) __declspec( dllexport ) int x = 5;<br>
}<br>
<br>
void foo( void ) {<br>
        __declspec( dllexport ) __declspec( dllimport ) int x = 5;<br>
}<br>
<br>
These two examples produce different warnings.  The latter says that<br>
dllimport is ignored but then fails to ignore it, the former fails to<br>
tell you it's ignoring the dllimport.<br></blockquote><div><br></div><div>Alright, thanks for the code, I'll check why this happens.</div><div> </div><div>>> So I think the diagnostic should point to the current record's</div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
>> dllexport and then have a note pointing to the base class declaration<br>
>> tying the two together.  Also, I wonder if we could add a fixit to<br>
>> supply the dllexport for the definition of the base class?<br>
><br>
><br>
> Well a note is fine, but I think pointing to the base class points to the<br>
> real problem. Adding a note is fine but will be more verbose and the real<br>
> problem will be in the note and not the main diagnostic.<br>
<br>
</div>The base class's declaration is mismatched with the declspec on the<br>
subclass, which is why I think it would make the most sense to point<br>
to the declspec and then note to the base class declaration.  This<br>
tells the user "these two things relate."</blockquote><div><br></div><div>Oh I see what you mean, you mean pointing to the base's class attribute. Alright, this makes more sense. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="im">Generally speaking, it's better to add test cases to an existing file</div>
than it is to add an entirely new file.  However, your approach here<br>
changes the nature of some of the tests which is a bad thing.  We need<br>
those tests to continue to work in C, so moving them to a C++ source<br>
file reduces the test coverage.  I would create a C++ file that has<br>
the C++-specific tests in it, but continue to add to the C test file<br>
cases which make sense.<br></blockquote><div><br></div><div>Makes sense, I didn't consider that the C++ semantics could change the meaning of the constructs in the C test code. </div></div><div><br></div><div><br></div>

-- João Matos<br>