When defining flags with ccstr arguments the default behaviour is that multiple specifications of the flag cause the definitions to accumulate into an \n separated string. The is mainly to accomodate things like CompileCommand and CompileOnly which are commonly specified multiple times. The makes it difficult to make string flags that have non empty default values since specifing the string on the command line will combine the default and new values. Flags can be set using -XX:foo:=bar which disables the accumulation behaviour but this is error prone. Some way of distinguishing the need behaviour is needed. I'm proposing adding a new typedef ccstrlist to distinguish these cases. Flag of type ccstrlist will have the accumulation behaviour while ccstr flags will replace the old value.