On 6/28/19 8:55 AM, Martin Sebor wrote:
> On 5/28/19 10:31 AM, Martin Sebor wrote:
>> On 5/28/19 4:24 AM, Martin Liška wrote:
>>> On 5/28/19 11:31 AM, David CARLIER wrote:
>>>> Hi,
>>>>
>>>> Here a tiny patch to fix few build warnings.
>>>>
>>>> Kind regards.
>>>>
>>>
>>> Hi.
>>>
>>> Well, I see a lot of these struct/class discrepancies when building
>>> GCC with LLVM.
>>> Question is whether it worth changing?
>>
>> I think it's nice for these to be spelled consistently and no benefit
>> to mixing and matching them.  If it cleans up common warnings I see
>> no reason not to make the change.
>>
>> FWIW, it's also a common convention to use struct for PODs and class
>> for types with user-defined ctors, and even if GCC doesn't subscribe
>> to it, make a change in support of it is an improvement independent
>> of the Visual C++ warning.  (As might be adding such a warning to
>> GCC to help enforce the convention on projects that do follow it.)
> 
> Jeff reminded me in a code review the other day that GCC does
> have a guideline for defining POD structs with the keyword
> "struct" and classes with ctors/dtors using "class":
> 
>   https://gcc.gnu.org/codingconventions.html#Struct_Use
> 
> I quickly prototyped a warning to see how closely GCC follows
> this convention.  The result shows that out of just under 800
> structs and classes defined in GCC sources some 200 use
> the keyword 'struct' despite having a ctor or dtor, or about
> 25%.  So as is the case with most other conventions, without
> a tool to help remind us they exist they are unlikely to be
> followed with enough consistency to be worth putting in place
> to begin with.
This kind of response just makes you look combative.  We have a
convention and we should follow it.  Please do so for your code.

If we can cleanly implement this kind of diagnostic, then I would
certainly suggest we do so, fix our codebase and turn it on by default
for GCC builds, regardless of its status in -Wall.

jeff

Reply via email to