aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-10-16 14:35:59 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-10-16 14:35:59 +0000
commit08d78391b727da035b0f51e1c52fc2376d340e2e (patch)
tree79ebf5345dac7edf97efae0a702dd1be594d9639 /gcc
parent5b7cd330631768b3904137db17104127eca9a9bf (diff)
downloadgcc-08d78391b727da035b0f51e1c52fc2376d340e2e.zip
gcc-08d78391b727da035b0f51e1c52fc2376d340e2e.tar.gz
gcc-08d78391b727da035b0f51e1c52fc2376d340e2e.tar.bz2
gimplify.c (gimplify_type_sizes): If the type is to be ignored for debug info purposes...
* gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be ignored for debug info purposes, do not clear the DECL_IGNORED_P flag on the bounds of its domain. * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically. From-SVN: r165544
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/gimplify.c5
-rw-r--r--gcc/tree.h5
3 files changed, 14 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0931306..375404c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2010-10-16 Eric Botcazou <ebotcazou@adacore.com>
+
+ * gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
+ ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
+ on the bounds of its domain.
+ * tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
+
2010-10-16 Anatoly Sokolov <aesok@post.ru>
* config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 4f1e399..4753c4b 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -7535,7 +7535,10 @@ gimplify_type_sizes (tree type, gimple_seq *list_p)
/* Ensure VLA bounds aren't removed, for -O0 they should be variables
with assigned stack slots, for -O1+ -g they should be tracked
by VTA. */
- if (TYPE_DOMAIN (type)
+ if (!(TYPE_NAME (type)
+ && TREE_CODE (TYPE_NAME (type)) == TYPE_DECL
+ && DECL_IGNORED_P (TYPE_NAME (type)))
+ && TYPE_DOMAIN (type)
&& INTEGRAL_TYPE_P (TYPE_DOMAIN (type)))
{
t = TYPE_MIN_VALUE (TYPE_DOMAIN (type));
diff --git a/gcc/tree.h b/gcc/tree.h
index af14b8b..1d1e2ac 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -2624,8 +2624,9 @@ struct GTY(()) tree_decl_minimal {
(FUNCTION_DECL_CHECK (NODE)->function_decl.personality)
/* Nonzero for a given ..._DECL node means that the name of this node should
- be ignored for symbolic debug purposes. Moreover, for a FUNCTION_DECL,
- the body of the function should also be ignored. */
+ be ignored for symbolic debug purposes. For a TYPE_DECL, this means that
+ the associated type should be ignored. For a FUNCTION_DECL, the body of
+ the function should also be ignored. */
#define DECL_IGNORED_P(NODE) \
(DECL_COMMON_CHECK (NODE)->decl_common.ignored_flag)