summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-11 14:45:09 +0000
committerwschmidt <wschmidt@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-11 14:45:09 +0000
commitc2f3703e8bc025f0e7314d5fb5fd6778d313865e (patch)
tree60b5a8c8375f8d4dc14402294e6038e4cd0c0732
parentee2a4acb92b91e3b9c9c0481da098560ee3b75d0 (diff)
downloadgcc-c2f3703e8bc025f0e7314d5fb5fd6778d313865e.tar.gz
2012-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* java/typeck.c (java_type_for_size): Handle 128-bit sizes for bitsizetype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@187409 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/java/ChangeLog4
-rw-r--r--gcc/java/typeck.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index b357bc04451..41c4f46196d 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -1,3 +1,7 @@
+2012-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
+
+ * typeck.c (java_type_for_size): Handle 128-bit sizes for bitsizetype.
+
2012-03-22 Release Manager
* GCC 4.7.0 released.
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 67552176bf5..065e17c54e4 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -189,6 +189,13 @@ java_type_for_size (unsigned bits, int unsignedp)
return unsignedp ? unsigned_int_type_node : int_type_node;
if (bits <= TYPE_PRECISION (long_type_node))
return unsignedp ? unsigned_long_type_node : long_type_node;
+ /* A 64-bit target with TImode requires 128-bit type definitions
+ for bitsizetype. This is fixed more properly elsewhere
+ beginning in 4.8. */
+ if (int128_integer_type_node
+ && bits == TYPE_PRECISION (int128_integer_type_node))
+ return (unsignedp ? int128_unsigned_type_node
+ : int128_integer_type_node);
return 0;
}