https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78491
Bug ID: 78491 Summary: invalid conversion from 'const void*' to 'void*' Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: lucanus81 at gmail dot com Target Milestone: --- Created attachment 40125 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40125&action=edit test case when compiling the testcase attached here I get: #include <iostream> #include <vector> #include <string> void lprintc(const std::vector<const std::string> &vect) { for (const auto &s1 : vect) std::cout << s1 << std::endl; } int main() { const std::vector<const std::string> lines = { "one", "two", "three" }; lprintc(lines); return 0; } /usr/local/gcc-head/include/c++/7.0.0/ext/new_allocator.h:121:23: error: invalid conversion from 'const void*' to 'void*' [-fpermissive] ::operator delete(__p, std::align_val_t(alignof(_Tp))); (plus many more lines: see full_error.txt attached) I can see this error with any version. clang correctly accepts this code. I don't know whether this is a bug or not. Thanks