https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83919
Bug ID: 83919 Summary: [8 regression] spurious -Wignored-qualifiers warning Product: gcc Version: 8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: s...@li-snyder.org Target Milestone: --- With gcc version gcc version 8.0.1 20180115 (experimental) (GCC) compiling this source with -Wextra -std=c++17 gets a warning: -- x.cc ----------------------------------------- enum class Conf; struct foo { foo (const Conf& conf) : x{conf} {} const Conf x; }; -------------------------------------------------- $ ~/gcc/build/gcc/cc1plus -quiet x.cc -Wextra -std=c++17 x.cc: In constructor ‘foo::foo(const Conf&)’: x.cc:4:34: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers] foo (const Conf& conf) : x{conf} {} ^ I don't see any obvious reason why this should give a warning. The warning goes away if one uses x(conf) rather than x{conf} in the initialization. I also do not see this warning with gcc 7.2.1.