Re: A: a new bug to old plain C

Александр Поваляев via Gcc-h elp <[email protected]>
Newsgroups gmane.comp.gcc.help
Message-ID <CAGT+J5w9bhpc3+hUFKbQ6PJS7OjAVMSDZ3CrD+efHtE50TOhqw@mail.gmail.com>
[[[Below]]]...

ср, 26 нояб. 2025 г. в 13:05, LIU Hao <[email protected]>:

> 在 2025-11-26 17:57, Александр Поваляев 写道:
> > Your mentioned the following text snippet from C standard:
> > "
> > 6.7.4 Type qualifiers
> >      6.7.4.1 General
> >
> >      11 For two qualified types to be compatible, both shall have
> >>>>>>> the
> >         identically qualified version <<<<<<< of a compatible type; the
> order of
> >         type qualifiers within a list of specifiers or qualifiers does
> not affect the
> >         specified type.
> > ".
> >
> > So, the last code sample does a conversion between "non compatible"
> types without any error or warning.
> >
>
> Those types are not compatible. => This is correct.
>
[[[Aleksandr]]] So these types are not compatible. But the assignment goes
without any error or warning.

>
> But the conversion is allowed by the second quoted paragraph. Although
> those pointers point to
> incompatible types, the conversion happens as a simple assignment, so
> qualified compatible types are also
> allowed. (The left operand can't have fewer qualifiers than the right
> operand.)
>
> [[[Aleksandr]]] What particular citation do you mean?

[[[Aleksandr]]] Also. An important point to be mentioned: "Foo**"->"const
Foo * const * const" conversion being compiled with
"-Wno-incompatible-pointer-types"
still produce an error :(


> Best regards,
> LIU Hao
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.