https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91593
Bug ID: 91593 Summary: Implicit enum conversions in libgfortran/io/transfer.c Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: prathamesh3492 at gcc dot gnu.org Target Milestone: --- Hi, I added a patch for Wenum-conversion (PR78736), that exposes some implicit enum conversions in libgfortran/io/transfer.c: ./../../gcc/libgfortran/io/transfer.c: In function ‘current_mode’: ../../../gcc/libgfortran/io/transfer.c:206:5: warning: implicit conversion from ‘enum <anonymous>’ to ‘file_mode’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 206 | m = FORM_UNSPECIFIED; | ^ ../../../gcc/libgfortran/io/transfer.c: In function ‘formatted_transfer_scalar_read’: ../../../gcc/libgfortran/io/transfer.c:1730:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 1730 | dtp->u.p.sign_status = SIGN_S; | ^ ../../../gcc/libgfortran/io/transfer.c:1735:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 1735 | dtp->u.p.sign_status = SIGN_SS; | ^ ../../../gcc/libgfortran/io/transfer.c:1740:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 1740 | dtp->u.p.sign_status = SIGN_SP; | ^ ./../../gcc/libgfortran/io/transfer.c: In function ‘formatted_transfer_scalar_write’: ../../../gcc/libgfortran/io/transfer.c:2189:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 2189 | dtp->u.p.sign_status = SIGN_S; | ^ ./../../gcc/libgfortran/io/transfer.c:2194:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 2194 | dtp->u.p.sign_status = SIGN_SS; | ^ ../../../gcc/libgfortran/io/transfer.c:2199:25: warning: implicit conversion from ‘enum <anonymous>’ to ‘unit_sign’ {aka ‘enum <anonymous>’} [-Wenum-conversion] 2199 | dtp->u.p.sign_status = SIGN_SP; | ^ AFAIU, the warnings are correct in this case since the enums are different and thus there's an implicit conversion from one enum type to another ? Thanks, Prathamesh