Commit 2aece9c1 by Jeff Law

re PR target/78849 (ICE on initialization of global struct containing __int20…

re PR target/78849 (ICE on initialization of global struct containing __int20 array at varasm.c:4968)

	PR target/78849
	* gcc/tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN
	types.

	PR target/78849
	* gcc.target/msp430/msp430.exp: Remove -pedantic-errors from
	DEFAULT_CFLAGS.
	* gcc.target/msp430/pr78849.c: New test.

From-SVN: r260627
parent 54fd1590
2017-05-23 Segher Boessenkool <segher@kernel.crashing.org> 2018-05-23 Jozef Lawrynowicz <jozef.l@somniumtech.com>
PR target/78849
* gcc/tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN
types.
2018-05-23 Segher Boessenkool <segher@kernel.crashing.org>
* doc/sourcebuild.texi (Endianness): New subsubsection. * doc/sourcebuild.texi (Endianness): New subsubsection.
......
2018-05-23 Jozef Lawrynowicz <jozef.l@somniumtech.com>
PR target/78849
* gcc.target/msp430/msp430.exp: Remove -pedantic-errors from
DEFAULT_CFLAGS.
* gcc.target/msp430/pr78849.c: New test.
2018-05-23 Marek Polacek <polacek@redhat.com> 2018-05-23 Marek Polacek <polacek@redhat.com>
* g++.dg/cpp2a/range-for8.C: New test. * g++.dg/cpp2a/range-for8.C: New test.
......
...@@ -24,10 +24,15 @@ if { ![istarget msp430-*-*] } then { ...@@ -24,10 +24,15 @@ if { ![istarget msp430-*-*] } then {
# Load support procs. # Load support procs.
load_lib gcc-dg.exp load_lib gcc-dg.exp
# If a testcase doesn't have special options, use these. # The '-pedantic-errors' option in the global variable DEFAULT_CFLAGS that is
# set by other drivers causes an error when the __int20 type is used, so remove
# this option from DEFAULT_CFLAGS for the msp430 tests.
global DEFAULT_CFLAGS global DEFAULT_CFLAGS
if ![info exists DEFAULT_CFLAGS] then { if [info exists DEFAULT_CFLAGS] then {
set DEFAULT_CFLAGS "" set MSP430_DEFAULT_CFLAGS \
[ string map { "-pedantic-errors" "" } $DEFAULT_CFLAGS ]
} else {
set MSP430_DEFAULT_CFLAGS ""
} }
# Initialize `dg'. # Initialize `dg'.
...@@ -35,7 +40,7 @@ dg-init ...@@ -35,7 +40,7 @@ dg-init
# Main loop. # Main loop.
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cCS\]]] \
"" $DEFAULT_CFLAGS "" $MSP430_DEFAULT_CFLAGS
# All done. # All done.
dg-finish dg-finish
/* { dg-do compile } */
/* { dg-final { scan-assembler ".size.*instance.*52" } } */
struct t_inner
{
__int20 a;
char val1;
__int20 b[3];
char val2;
};
struct t_full
{
__int20 array[2];
char val1;
struct t_inner bb[2];
char val2;
};
struct t_full instance =
{
{
4231,
3212,
},
5,
{
{
87680,
20,
{
2534,
3,
41,
},
55,
},
{
567,
4,
{
43522,
5433,
454,
},
88,
},
},
8,
};
...@@ -9785,8 +9785,6 @@ build_common_tree_nodes (bool signed_char) ...@@ -9785,8 +9785,6 @@ build_common_tree_nodes (bool signed_char)
{ {
int_n_trees[i].signed_type = make_signed_type (int_n_data[i].bitsize); int_n_trees[i].signed_type = make_signed_type (int_n_data[i].bitsize);
int_n_trees[i].unsigned_type = make_unsigned_type (int_n_data[i].bitsize); int_n_trees[i].unsigned_type = make_unsigned_type (int_n_data[i].bitsize);
TYPE_SIZE (int_n_trees[i].signed_type) = bitsize_int (int_n_data[i].bitsize);
TYPE_SIZE (int_n_trees[i].unsigned_type) = bitsize_int (int_n_data[i].bitsize);
if (int_n_data[i].bitsize > LONG_LONG_TYPE_SIZE if (int_n_data[i].bitsize > LONG_LONG_TYPE_SIZE
&& int_n_enabled_p[i]) && int_n_enabled_p[i])
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment