name = cxx_printable_name (current_function_decl, 2);
}
+ if (!release_name)
+ {
+ cpp_string cstr = { 0, 0 }, strname;
+ size_t len = strlen (name) + 3; /* Two for '"'s. One for NULL. */
+ char *namep = XNEWVEC (char, len);
+ snprintf (namep, len, "\"%s\"", name);
+ strname.text = (unsigned char *) namep;
+ strname.len = len - 1;
+ if (cpp_interpret_string (parse_in, &strname, 1, &cstr, CPP_STRING))
+ {
+ name = (const char *) cstr.text;
+ release_name = true;
+ }
+
+ XDELETEVEC (namep);
+ }
+
size_t length = strlen (name);
domain = build_index_type (size_int (length));
init = build_string (length + 1, name);
--- /dev/null
+// PR c++/122228
+// { dg-do compile { target c++11 } }
+// { dg-require-iconv "IBM1047" }
+// { dg-options "-fexec-charset=IBM1047 -std=c++11" }
+
+#include "func_constexpr.C"