++
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
++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron.ballman+gcc at gmail dot com
Target Milestone: ---
GCC rejects the following valid program:
```
[[]];
int main() {}
```
with the error "declaration does not declare anything" on the attribute.
However, this is a valid
++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron.ballman+gcc at gmail dot com
Target Milestone: ---
[dcl.type] specifies in what positions an attribute-specifier-seq may appear
within a type-specifier-seq, which is only at the end of the sequence. GCC
silently accepts
++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron.ballman+gcc at gmail dot com
Target Milestone: ---
The following code produces "false, false" with Clang 3.8.0 and MSVC 2015, but
"true, true" with GCC 6.1.0 (and EDG).
#include
template
int som
: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: aaron.ballman+gcc at gmail dot com
Target Milestone: ---
The following code produces a reject-valid diagnostic:
struct test {
unsigned d [[]] : 1;
};
main.cpp:2:17: error: function definition does not declare