https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55254
Eric Gallager <egallager at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2017-09-27 CC| |egallager at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Eric Gallager <egallager at gcc dot gnu.org> --- I made a fuller testcase: $ cat 55254.cc #include <string> int foo(int eighty) { std::string foo = std::string(80, '='); std::string bar = std::string('=', 80); std::string baz = std::string(int('='), eighty); (void)foo; (void)bar; (void)baz; if (eighty == 0) { eighty = '='; return eighty; } return 80; } $ /usr/local/bin/g++ -c -Wall -Wextra -Wnarrowing -Wsign-conversion -Wconversion -pedantic -Weffc++ 55254.cc 55254.cc: In function ‘int foo(int)’: 55254.cc:7:48: warning: conversion from ‘int’ to ‘char’ may change value [-Wconversion] std::string baz = std::string(int('='), eighty); ^ $ So, I get a warning, but not where the reporter was requesting it (which is probably my fault). Confirmed that there could still be a warning for bar.