Christophe Lyon <[email protected]> writes:
> Hi,
>
> This patch adds the missing space before '%<' in
> config/aarch64/aarch64.c and gcc/cp/call.c. It also updates the
> check-internal-format-escaping.py checker to warn about such cases.
>
> OK?
>
> Christophe
>
> diff --git a/contrib/check-internal-format-escaping.py
> b/contrib/check-internal-format-escaping.py
> index aac4f9e..9c62586 100755
> --- a/contrib/check-internal-format-escaping.py
> +++ b/contrib/check-internal-format-escaping.py
> @@ -58,6 +58,10 @@ for i, l in enumerate(lines):
> print('%s: %s' % (origin, text))
> if re.search("[^%]'", p):
> print('%s: %s' % (origin, text))
> + # %< should not be preceded by a non-punctuation
> + # %character.
> + if re.search("[a-zA-Z0-9]%<", p):
> + print('%s: %s' % (origin, text))
> j += 1
>
> origin = None
> diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
> index 9be7548..b66071f 100644
> --- a/gcc/config/aarch64/aarch64.c
> +++ b/gcc/config/aarch64/aarch64.c
> @@ -11483,7 +11483,7 @@ aarch64_override_options_internal (struct gcc_options
> *opts)
> if (aarch64_stack_protector_guard == SSP_GLOBAL
> && opts->x_aarch64_stack_protector_guard_offset_str)
> {
> - error ("incompatible options %<-mstack-protector-guard=global%> and"
> + error ("incompatible options %<-mstack-protector-guard=global%> and "
> "%<-mstack-protector-guard-offset=%s%>",
> aarch64_stack_protector_guard_offset_str);
> }
> diff --git a/gcc/cp/call.c b/gcc/cp/call.c
> index 9582345..8f3d019 100644
> --- a/gcc/cp/call.c
> +++ b/gcc/cp/call.c
> @@ -3614,16 +3614,16 @@ print_z_candidate (location_t loc, const char *msgstr,
> {
> cloc = loc;
> if (candidate->num_convs == 3)
> - inform (cloc, "%s%<%D(%T, %T, %T)%> <built-in>", msg, fn,
> + inform (cloc, "%s %<%D(%T, %T, %T)%> <built-in>", msg, fn,
> candidate->convs[0]->type,
> candidate->convs[1]->type,
> candidate->convs[2]->type);
> else if (candidate->num_convs == 2)
> - inform (cloc, "%s%<%D(%T, %T)%> <built-in>", msg, fn,
> + inform (cloc, "%s %<%D(%T, %T)%> <built-in>", msg, fn,
> candidate->convs[0]->type,
> candidate->convs[1]->type);
> else
> - inform (cloc, "%s%<%D(%T)%> <built-in>", msg, fn,
> + inform (cloc, "%s %<%D(%T)%> <built-in>", msg, fn,
> candidate->convs[0]->type);
> }
> else if (TYPE_P (fn))
I don't think this is right, since msg already has a space where necessary:
const char *msg = (msgstr == NULL
? ""
: ACONCAT ((msgstr, " ", NULL)));
Adding something like "(^| )[^% ]*" to the start of the regexp might
avoid that, at the risk of letting through real problems.
The aarch64.c change is definitely OK though, thanks for the catch.
Richard