aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2009-10-29 18:36:21 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2009-10-29 18:36:21 +0000
commitff67c0a549cae6bdcb345c030853c3cadda5fb8c (patch)
tree66074bfc367fd3b42f0200b38e4283f1b85c1a8c /gcc/ada
parentd8e94f7997cfb8a83fe5e7efec9dc34153f327ec (diff)
downloadgcc-ff67c0a549cae6bdcb345c030853c3cadda5fb8c.zip
gcc-ff67c0a549cae6bdcb345c030853c3cadda5fb8c.tar.gz
gcc-ff67c0a549cae6bdcb345c030853c3cadda5fb8c.tar.bz2
decl.c (make_type_from_size): Do not create integer types with precision 0.
* gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not create integer types with precision 0. From-SVN: r153722
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog5
-rw-r--r--gcc/ada/gcc-interface/decl.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index f92adbc..fb7e4b7 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,5 +1,10 @@
2009-10-29 Eric Botcazou <ebotcazou@adacore.com>
+ * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
+ create integer types with precision 0.
+
+2009-10-29 Eric Botcazou <ebotcazou@adacore.com>
+
* gcc-interface/decl.c (array_type_has_nonaliased_component): Swap
parameters and rewrite comments. For a derived type, return the
setting of its parent type.
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index cd13e21..c4d5e26 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -7737,6 +7737,10 @@ make_type_from_size (tree type, tree size_tree, bool for_biased)
biased_p = (TREE_CODE (type) == INTEGER_TYPE
&& TYPE_BIASED_REPRESENTATION_P (type));
+ /* Integer types with precision 0 are forbidden. */
+ if (size == 0)
+ size = 1;
+
/* Only do something if the type is not a packed array type and
doesn't already have the proper size. */
if (TYPE_PACKED_ARRAY_TYPE_P (type)