On Thu, Oct 19, 2023 at 03:38:57PM +0000, Andrew Pinski wrote:
> In the case of convert_argument, we would return the same expression
> back rather than error_mark_node after the error message about
> trying to convert to an incomplete type. This causes issues in
> the gimplfier trying to see if another conversion is needed.
> 
> The code here dates back to before the revision history too so
> it might be the case it never noticed we should return an error_mark_node.
> 
> Bootstrapped and tested on x86_64-linux-gnu with no regressions.

Looks OK but please move [PR100532] to the end of the subject.

>       PR c/100532
> 
> gcc/c/ChangeLog:
> 
>       * c-typeck.cc (convert_argument): After erroring out
>       about an incomplete type return error_mark_node.
> 
> gcc/testsuite/ChangeLog:
> 
>       * gcc.dg/pr100532-1.c: New test.
> ---
>  gcc/c/c-typeck.cc                 | 2 +-
>  gcc/testsuite/gcc.dg/pr100532-1.c | 7 +++++++
>  2 files changed, 8 insertions(+), 1 deletion(-)
>  create mode 100644 gcc/testsuite/gcc.dg/pr100532-1.c
> 
> diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc
> index 6e044b4afbc..8f8562936dc 100644
> --- a/gcc/c/c-typeck.cc
> +++ b/gcc/c/c-typeck.cc
> @@ -3367,7 +3367,7 @@ convert_argument (location_t ploc, tree function, tree 
> fundecl,
>      {
>        error_at (ploc, "type of formal parameter %d is incomplete",
>               parmnum + 1);
> -      return val;
> +      return error_mark_node;
>      }
>  
>    /* Optionally warn about conversions that differ from the default
> diff --git a/gcc/testsuite/gcc.dg/pr100532-1.c 
> b/gcc/testsuite/gcc.dg/pr100532-1.c
> new file mode 100644
> index 00000000000..81e37c60415
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/pr100532-1.c
> @@ -0,0 +1,7 @@
> +/* { dg-do compile } */
> +/* PR c/100532 */
> +
> +typedef __SIZE_TYPE__ size_t;
> +void *memcpy(void[], const void *, size_t); /* { dg-error "declaration of 
> type name" } */
> +void c(void) { memcpy(c, "a", 2); } /* { dg-error "type of formal parameter" 
> } */
> +

Extra newline.

Marek

Reply via email to