https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116931
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- [dcl.type.general] p2: As a general rule, at most one defining-type-specifier is allowed in the complete decl-specifier-seq of a declaration or in a defining-type-specifier-seq, and at most one type-specifier is allowed in a type-specifier-seq. The only exceptions to this rule are the following: — const can be combined with any type specifier except itself. — [...] So you can't have const const T or const T const. const T* const is of course not the same as const const T* and so is OK.