https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91182
Bug ID: 91182
Summary: deprecated attribute string-literal
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron.ballman+gcc at gmail dot com
Target Milestone: ---
Using a wide string literal argument to the deprecated attribute has
unfortunate behavior when trying to print that argument as part of a
diagnostic. Consider:
```
[[deprecated(L"Test")]] void foo();
int main() {
foo();
}
```
Produces this for output:
warning: 'void foo()' is deprecated: T [-Wdeprecated-declarations]
It seems that the diagnostic is treating the literal as always being a narrow
string literal. Similar bad behavior happens with u and U prefixes as well.