diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-07-04 12:28:02 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-07-04 12:28:02 +0000 |
commit | db297e20845c258a8c02eeab220027d9717a3cd3 (patch) | |
tree | 8c07efed8d3d61f18f4aad4f161d235422578424 | |
parent | f451d14dcc3720d959a95efa6eb1f79ae6edd0ae (diff) | |
download | gcc-db297e20845c258a8c02eeab220027d9717a3cd3.zip gcc-db297e20845c258a8c02eeab220027d9717a3cd3.tar.gz gcc-db297e20845c258a8c02eeab220027d9717a3cd3.tar.bz2 |
re PR target/44643 ([avr] ICE in c-typeck.c)
PR target/44643
* config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY
instead of TREE_READONLY.
From-SVN: r175809
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 14 |
2 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd353f4..1b56a8f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2011-07-04 Georg-Johann Lay <avr@gjlay.de> + PR target/44643 + * config/avr/avr.c (avr_insert_attributes): Use TYPE_READONLY + instead of TREE_READONLY. + +2011-07-04 Georg-Johann Lay <avr@gjlay.de> + * doc/extend.texi (AVR Built-in Functions): Update documentation of __builtin_avr_fmul*. * config/avr/avr.c (avr_init_builtins): Don't depend on diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index fa690fb..89da4fb 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -5030,7 +5030,19 @@ avr_insert_attributes (tree node, tree *attributes) && (TREE_STATIC (node) || DECL_EXTERNAL (node)) && avr_progmem_p (node, *attributes)) { - if (TREE_READONLY (node)) + tree node0 = node; + + /* For C++, we have to peel arrays in order to get correct + determination of readonlyness. */ + + do + node0 = TREE_TYPE (node0); + while (TREE_CODE (node0) == ARRAY_TYPE); + + if (error_mark_node == node0) + return; + + if (TYPE_READONLY (node0)) { static const char dsec[] = ".progmem.data"; |