summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingold <gingold@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-20 08:47:27 +0000
committergingold <gingold@138bc75d-0d04-0410-961f-82ee72b054a4>2012-03-20 08:47:27 +0000
commit748e5d456ca0b4b412d0a0672b9bc745f33139dc (patch)
tree15e5a2cdf90de1c7598303847d54dcbe95549488
parenta0554dde33669b04d75b05178a9b7c8c7740ef1c (diff)
downloadgcc-748e5d456ca0b4b412d0a0672b9bc745f33139dc.tar.gz
2012-03-20 Tristan Gingold <gingold@adacore.com>
* tree.h (enum size_type_kind): Add stk_ prefix to constants, convert in lowercase. (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype) (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust. * stor-layout.c (sizetype_tab): Adjust. (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE. * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last instead of type_kind_last. * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int instead of size_int_kind. * doc/tm.texi.in (Type Layout): Document SIZETYPE. * doc/tm.texi: Regenerate. * defaults.h (SIZETYPE): Provide a default value. * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int". (SIZETYPE): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185561 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog18
-rw-r--r--gcc/config/vms/vms.h9
-rw-r--r--gcc/defaults.h4
-rw-r--r--gcc/doc/tm.texi12
-rw-r--r--gcc/doc/tm.texi.in12
-rw-r--r--gcc/stor-layout.c10
-rw-r--r--gcc/tree-scalar-evolution.c2
-rw-r--r--gcc/tree-streamer.c2
-rw-r--r--gcc/tree.h29
9 files changed, 74 insertions, 24 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 019b0f8e67a..bf9d56f6a8d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,21 @@
+2012-03-20 Tristan Gingold <gingold@adacore.com>
+
+ * tree.h (enum size_type_kind): Add stk_ prefix to constants,
+ convert in lowercase.
+ (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
+ (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
+ * stor-layout.c (sizetype_tab): Adjust.
+ (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
+ * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
+ instead of type_kind_last.
+ * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
+ instead of size_int_kind.
+ * doc/tm.texi.in (Type Layout): Document SIZETYPE.
+ * doc/tm.texi: Regenerate.
+ * defaults.h (SIZETYPE): Provide a default value.
+ * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
+ (SIZETYPE): Define.
+
2012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
* config/sh/sh.md: Use braced string notation where applicable.
diff --git a/gcc/config/vms/vms.h b/gcc/config/vms/vms.h
index f2bc354d684..47028c8a03c 100644
--- a/gcc/config/vms/vms.h
+++ b/gcc/config/vms/vms.h
@@ -60,15 +60,18 @@ extern void vms_c_register_includes (const char *, const char *, int);
#define POINTER_SIZE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? 32 : 64)
#define POINTERS_EXTEND_UNSIGNED 0
-/* FIXME: It should always be a 32 bit type. */
+/* Always a 32 bit type. */
#undef SIZE_TYPE
-#define SIZE_TYPE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? \
- "unsigned int" : "long long unsigned int")
+#define SIZE_TYPE "unsigned int"
+
/* ???: Defined as a 'int' by dec-c, but obstack.h doesn't like it. */
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? \
"int" : "long long int")
+#define SIZETYPE (flag_vms_pointer_size == VMS_POINTER_SIZE_NONE ? \
+ "unsigned int" : "long long unsigned int")
+
#define C_COMMON_OVERRIDE_OPTIONS vms_c_common_override_options ()
/* VMS doesn't support other sections than .text for code. */
diff --git a/gcc/defaults.h b/gcc/defaults.h
index 1780dda3aee..296bb6a9ce6 100644
--- a/gcc/defaults.h
+++ b/gcc/defaults.h
@@ -582,6 +582,10 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define SIZE_TYPE "long unsigned int"
#endif
+#ifndef SIZETYPE
+#define SIZETYPE SIZE_TYPE
+#endif
+
#ifndef PID_TYPE
#define PID_TYPE "int"
#endif
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
index 69f8aba39db..2891bb66231 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -1642,6 +1642,18 @@ If you don't define this macro, the default is @code{"long unsigned
int"}.
@end defmac
+@defmac SIZETYPE
+GCC defines internal types (@code{sizetype}, @code{ssizetype},
+@code{bitsizetype} and @code{sbitsizetype}) for expressions
+dealing with size. This macro is a C expression for a string describing
+the name of the data type from which the precision of @code{sizetype}
+is extracted.
+
+The string has the same restrictions as @code{SIZE_TYPE} string.
+
+If you don't define this macro, the default is @code{SIZE_TYPE}.
+@end defmac
+
@defmac PTRDIFF_TYPE
A C expression for a string describing the name of the data type to use
for the result of subtracting two pointers. The typedef name
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
index c24cf1eb1be..a222654ac1f 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -1630,6 +1630,18 @@ If you don't define this macro, the default is @code{"long unsigned
int"}.
@end defmac
+@defmac SIZETYPE
+GCC defines internal types (@code{sizetype}, @code{ssizetype},
+@code{bitsizetype} and @code{sbitsizetype}) for expressions
+dealing with size. This macro is a C expression for a string describing
+the name of the data type from which the precision of @code{sizetype}
+is extracted.
+
+The string has the same restrictions as @code{SIZE_TYPE} string.
+
+If you don't define this macro, the default is @code{SIZE_TYPE}.
+@end defmac
+
@defmac PTRDIFF_TYPE
A C expression for a string describing the name of the data type to use
for the result of subtracting two pointers. The typedef name
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 98b78865d4d..2d3f92e202f 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -44,7 +44,7 @@ along with GCC; see the file COPYING3. If not see
/* Data type for the expressions representing sizes of data types.
It is the first integer type laid out. */
-tree sizetype_tab[(int) TYPE_KIND_LAST];
+tree sizetype_tab[(int) stk_type_kind_last];
/* If nonzero, this is an upper limit on alignment of structure fields.
The value is measured in bits. */
@@ -2389,13 +2389,13 @@ initialize_sizetypes (void)
int precision, bprecision;
/* Get sizetypes precision from the SIZE_TYPE target macro. */
- if (strcmp (SIZE_TYPE, "unsigned int") == 0)
+ if (strcmp (SIZETYPE, "unsigned int") == 0)
precision = INT_TYPE_SIZE;
- else if (strcmp (SIZE_TYPE, "long unsigned int") == 0)
+ else if (strcmp (SIZETYPE, "long unsigned int") == 0)
precision = LONG_TYPE_SIZE;
- else if (strcmp (SIZE_TYPE, "long long unsigned int") == 0)
+ else if (strcmp (SIZETYPE, "long long unsigned int") == 0)
precision = LONG_LONG_TYPE_SIZE;
- else if (strcmp (SIZE_TYPE, "short unsigned int") == 0)
+ else if (strcmp (SIZETYPE, "short unsigned int") == 0)
precision = SHORT_TYPE_SIZE;
else
gcc_unreachable ();
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index c719984a692..c6631b856b8 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -1758,7 +1758,7 @@ interpret_rhs_expr (struct loop *loop, gimple at_stmt,
{
gcc_assert ((bitpos % BITS_PER_UNIT) == 0);
- unitpos = size_int_kind (bitpos / BITS_PER_UNIT, SIZETYPE);
+ unitpos = size_int (bitpos / BITS_PER_UNIT);
chrec3 = analyze_scalar_evolution (loop, unitpos);
chrec3 = chrec_convert (TREE_TYPE (unitpos), chrec3, at_stmt);
res = chrec_fold_plus (type, res, chrec3);
diff --git a/gcc/tree-streamer.c b/gcc/tree-streamer.c
index 94d540b5984..f7c15178e67 100644
--- a/gcc/tree-streamer.c
+++ b/gcc/tree-streamer.c
@@ -293,7 +293,7 @@ preload_common_nodes (struct streamer_tree_cache_d *cache)
if (i != itk_char)
record_common_node (cache, integer_types[i]);
- for (i = 0; i < TYPE_KIND_LAST; i++)
+ for (i = 0; i < stk_type_kind_last; i++)
record_common_node (cache, sizetype_tab[i]);
for (i = 0; i < TI_MAX; i++)
diff --git a/gcc/tree.h b/gcc/tree.h
index 8a1cbb80c23..da6be998054 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -4787,18 +4787,19 @@ extern HOST_WIDE_INT int_byte_position (const_tree);
enum size_type_kind
{
- SIZETYPE, /* Normal representation of sizes in bytes. */
- SSIZETYPE, /* Signed representation of sizes in bytes. */
- BITSIZETYPE, /* Normal representation of sizes in bits. */
- SBITSIZETYPE, /* Signed representation of sizes in bits. */
- TYPE_KIND_LAST};
+ stk_sizetype, /* Normal representation of sizes in bytes. */
+ stk_ssizetype, /* Signed representation of sizes in bytes. */
+ stk_bitsizetype, /* Normal representation of sizes in bits. */
+ stk_sbitsizetype, /* Signed representation of sizes in bits. */
+ stk_type_kind_last
+};
-extern GTY(()) tree sizetype_tab[(int) TYPE_KIND_LAST];
+extern GTY(()) tree sizetype_tab[(int) stk_type_kind_last];
-#define sizetype sizetype_tab[(int) SIZETYPE]
-#define bitsizetype sizetype_tab[(int) BITSIZETYPE]
-#define ssizetype sizetype_tab[(int) SSIZETYPE]
-#define sbitsizetype sizetype_tab[(int) SBITSIZETYPE]
+#define sizetype sizetype_tab[(int) stk_sizetype]
+#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
+#define ssizetype sizetype_tab[(int) stk_ssizetype]
+#define sbitsizetype sizetype_tab[(int) stk_sbitsizetype]
extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
#define size_binop(CODE,T1,T2)\
@@ -4808,10 +4809,10 @@ extern tree size_binop_loc (location_t, enum tree_code, tree, tree);
size_diffop_loc (UNKNOWN_LOCATION, T1, T2)
extern tree size_diffop_loc (location_t, tree, tree);
-#define size_int(L) size_int_kind (L, SIZETYPE)
-#define ssize_int(L) size_int_kind (L, SSIZETYPE)
-#define bitsize_int(L) size_int_kind (L, BITSIZETYPE)
-#define sbitsize_int(L) size_int_kind (L, SBITSIZETYPE)
+#define size_int(L) size_int_kind (L, stk_sizetype)
+#define ssize_int(L) size_int_kind (L, stk_ssizetype)
+#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
+#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N)
extern tree round_up_loc (location_t, tree, int);