On Mon, 9 Mar 2020, Christophe Lyon wrote:

> Hi Joseph,
> 
> I've noticed that your patch introduces regressions on aarch64:
> FAIL: gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
> -march=armv8.2-a+sve  (test for errors, line 33)
> we now get
> /gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/sizeless-1.c:33:44:
> error: empty scalar initializer
> while we expect dg-error {initializer element is not constant}
> 
> FAIL: gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
> -march=armv8.2-a+sve  (test for errors, line 85)
> we no longer emit dg-error {empty scalar initializer }
> 
> FAIL: gcc.target/aarch64/sve/acle/general-c/sizeless-1.c
> -march=armv8.2-a+sve (test for excess errors)
> FAIL: gcc.target/aarch64/sve/acle/general-c/sizeless-2.c
> -march=armv8.2-a+sve  (test for errors, line 85)
> we no longer emit dg-error {empty scalar initializer }
> 
> Since the compiler did not ICE before your patch, is that new
> behaviour expected (and the tests need an update), or is that a
> problem with the patch?

Where there has already been an error about the type of an initializer, 
it's expected that some other errors about the value of that initializer 
will disappear.  So I think the cases where a previously expected error 
has disappeared are cases where the tests need an update; they already 
expect an error for the type.

That leaves the case where you report that "empty scalar initializer" has 
appeared.  That seems like a bug.  Maybe some SVE case means 
process_init_element is ignoring something in an initializer for an SVE 
type that did not in fact result in the variable-size error from 
digest_init?  Is the "empty scalar initializer" error coming from the 
compound literal on line 33, as opposed to the variable initialized on 
that line?

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to