Fix bugs relating to flexibly-sized objects in nios2 backend.
authorSandra Loosemore <sandra@codesourcery.com>
Mon, 2 Dec 2019 03:52:15 +0000 (22:52 -0500)
committerSandra Loosemore <sandra@gcc.gnu.org>
Mon, 2 Dec 2019 03:52:15 +0000 (22:52 -0500)
commit4569f8b3652ae1e5ca353c24148b50c786b36c8b
treef22f9ae555d8f38b980718893ef0bc8f71976ea5
parente549dd44b5ff0547004a640554ebe55f1ce2936b
Fix bugs relating to flexibly-sized objects in nios2 backend.

2019-12-01  Sandra Loosemore  <sandra@codesourcery.com>

Fix bugs relating to flexibly-sized objects in nios2 backend.

PR target/92499

gcc/c/
* c-decl.c (flexible_array_type_p): Move to common code.

gcc/
* config/nios2/nios2.c (nios2_in_small_data_p): Do not consider
objects of flexible types to be small if they have internal linkage
or are declared extern.
* config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with...
(ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this.  Use targetm.in_small_data_p
instead of the size of the object initializer.
* tree.c (flexible_array_type_p): Move from C front end, and
generalize to handle fields in non-C structures.
* tree.h (flexible_array_type_p): Declare.

gcc/testsuite/
* gcc.target/nios2/pr92499-1.c: New.
* gcc.target/nios2/pr92499-2.c: New.
* gcc.target/nios2/pr92499-3.c: New.

From-SVN: r278891
gcc/ChangeLog
gcc/c/ChangeLog
gcc/c/c-decl.c
gcc/config/nios2/nios2.c
gcc/config/nios2/nios2.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/nios2/pr92499-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/pr92499-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/nios2/pr92499-3.c [new file with mode: 0644]
gcc/tree.c
gcc/tree.h