toUpper may be not safe/pure/nothrow if C is a non-built-in type. You should remove these.