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 >