summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 18:28:21 +0000
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-06 18:28:21 +0000
commitc19ea58f4c22885970a0bfbed4086d53df4418da (patch)
tree89ff7fdde0dc578287fb6c80a46652eaf78f3ddf
parent0b6b034c45b5e378d9fcc2459b2d6872c7e5ef00 (diff)
downloadgcc-c19ea58f4c22885970a0bfbed4086d53df4418da.tar.gz
compiler, libgo: Fixes to prepare for 64-bit int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193254 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/go/gofrontend/types.cc8
-rw-r--r--libgo/go/bytes/indexbyte.c4
-rw-r--r--libgo/go/log/syslog/syslog_c.c6
-rw-r--r--libgo/go/syscall/signame.c6
-rw-r--r--libgo/runtime/cpuprof.c2
-rw-r--r--libgo/runtime/go-new-map.c5
-rw-r--r--libgo/runtime/go-rune.c2
-rw-r--r--libgo/runtime/go-string.h2
-rw-r--r--libgo/runtime/go-traceback.c4
-rw-r--r--libgo/runtime/proc.c4
-rw-r--r--libgo/runtime/runtime.h4
-rw-r--r--libgo/runtime/string.goc2
12 files changed, 28 insertions, 21 deletions
diff --git a/gcc/go/gofrontend/types.cc b/gcc/go/gofrontend/types.cc
index 8a9f7d15df7..5e9e828d9d5 100644
--- a/gcc/go/gofrontend/types.cc
+++ b/gcc/go/gofrontend/types.cc
@@ -2568,8 +2568,12 @@ Integer_type::create_abstract_integer_type()
{
static Integer_type* abstract_type;
if (abstract_type == NULL)
- abstract_type = new Integer_type(true, false, INT_TYPE_SIZE,
- RUNTIME_TYPE_KIND_INT);
+ {
+ Type* int_type = Type::lookup_integer_type("int");
+ abstract_type = new Integer_type(true, false,
+ int_type->integer_type()->bits(),
+ RUNTIME_TYPE_KIND_INT);
+ }
return abstract_type;
}
diff --git a/libgo/go/bytes/indexbyte.c b/libgo/go/bytes/indexbyte.c
index 9c72e611a80..1f4399c446a 100644
--- a/libgo/go/bytes/indexbyte.c
+++ b/libgo/go/bytes/indexbyte.c
@@ -13,11 +13,11 @@
We deliberately don't split the stack in case it does call the
library function, which shouldn't need much stack space. */
-int IndexByte (struct __go_open_array, char)
+intgo IndexByte (struct __go_open_array, char)
asm ("bytes.IndexByte")
__attribute__ ((no_split_stack));
-int
+intgo
IndexByte (struct __go_open_array s, char b)
{
char *p;
diff --git a/libgo/go/log/syslog/syslog_c.c b/libgo/go/log/syslog/syslog_c.c
index 3b4cddd5d86..d79cba3757b 100644
--- a/libgo/go/log/syslog/syslog_c.c
+++ b/libgo/go/log/syslog/syslog_c.c
@@ -6,14 +6,16 @@
#include <syslog.h>
+#include "runtime.h"
+
/* We need to use a C function to call the syslog function, because we
can't represent a C varargs function in Go. */
-void syslog_c(int, const char*)
+void syslog_c(intgo, const char*)
asm ("log_syslog.syslog_c");
void
-syslog_c (int priority, const char *msg)
+syslog_c (intgo priority, const char *msg)
{
syslog (priority, "%s", msg);
}
diff --git a/libgo/go/syscall/signame.c b/libgo/go/syscall/signame.c
index 5ff0b09dbb7..c2d3b9fac70 100644
--- a/libgo/go/syscall/signame.c
+++ b/libgo/go/syscall/signame.c
@@ -10,10 +10,10 @@
#include "arch.h"
#include "malloc.h"
-String Signame (int sig) asm ("syscall.Signame");
+String Signame (intgo sig) asm ("syscall.Signame");
String
-Signame (int sig)
+Signame (intgo sig)
{
const char* s = NULL;
char buf[100];
@@ -27,7 +27,7 @@ Signame (int sig)
if (s == NULL)
{
- snprintf(buf, sizeof buf, "signal %d", sig);
+ snprintf(buf, sizeof buf, "signal %ld", (long) sig);
s = buf;
}
len = __builtin_strlen (s);
diff --git a/libgo/runtime/cpuprof.c b/libgo/runtime/cpuprof.c
index 23af18b6c2b..3b7f572d5a5 100644
--- a/libgo/runtime/cpuprof.c
+++ b/libgo/runtime/cpuprof.c
@@ -124,7 +124,7 @@ static uintptr eod[3] = {0, 1, 0};
static void LostProfileData(void) {
}
-extern void runtime_SetCPUProfileRate(int32)
+extern void runtime_SetCPUProfileRate(intgo)
__asm__("runtime.SetCPUProfileRate");
// SetCPUProfileRate sets the CPU profiling rate.
diff --git a/libgo/runtime/go-new-map.c b/libgo/runtime/go-new-map.c
index 096856e234c..c289bc0bea0 100644
--- a/libgo/runtime/go-new-map.c
+++ b/libgo/runtime/go-new-map.c
@@ -106,10 +106,11 @@ __go_map_next_prime (uintptr_t n)
struct __go_map *
__go_new_map (const struct __go_map_descriptor *descriptor, uintptr_t entries)
{
- intgo ientries;
+ int32 ientries;
struct __go_map *ret;
- ientries = (intgo) entries;
+ /* The master library limits map entries to int32, so we do too. */
+ ientries = (int32) entries;
if (ientries < 0 || (uintptr_t) ientries != entries)
runtime_panicstring ("map size out of range");
diff --git a/libgo/runtime/go-rune.c b/libgo/runtime/go-rune.c
index ba6d86c501f..4c65e215167 100644
--- a/libgo/runtime/go-rune.c
+++ b/libgo/runtime/go-rune.c
@@ -14,7 +14,7 @@
characters used from STR. */
int
-__go_get_rune (const unsigned char *str, size_t len, int *rune)
+__go_get_rune (const unsigned char *str, size_t len, int32 *rune)
{
int c, c1, c2, c3, l;
diff --git a/libgo/runtime/go-string.h b/libgo/runtime/go-string.h
index f4c149bb54e..7fee1da03eb 100644
--- a/libgo/runtime/go-string.h
+++ b/libgo/runtime/go-string.h
@@ -26,6 +26,6 @@ __go_ptr_strings_equal (const String *ps1, const String *ps2)
return __go_strings_equal (*ps1, *ps2);
}
-extern int __go_get_rune (const unsigned char *, size_t, int *);
+extern int __go_get_rune (const unsigned char *, size_t, int32 *);
#endif /* !defined(LIBGO_GO_STRING_H) */
diff --git a/libgo/runtime/go-traceback.c b/libgo/runtime/go-traceback.c
index 4d5b61a4fd5..2927351c8a9 100644
--- a/libgo/runtime/go-traceback.c
+++ b/libgo/runtime/go-traceback.c
@@ -29,13 +29,13 @@ runtime_printtrace (uintptr *pcbuf, int32 c)
{
String fn;
String file;
- int line;
+ intgo line;
if (__go_file_line (pcbuf[i], &fn, &file, &line)
&& runtime_showframe (fn.str))
{
runtime_printf ("%S\n", fn);
- runtime_printf ("\t%S:%d\n", file, line);
+ runtime_printf ("\t%S:%D\n", file, (int64) line);
}
}
}
diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
index 43071e581cc..b6254a7e53f 100644
--- a/libgo/runtime/proc.c
+++ b/libgo/runtime/proc.c
@@ -610,11 +610,11 @@ runtime_goroutinetrailer(G *g)
if(g != nil && g->gopc != 0 && g->goid != 1) {
String fn;
String file;
- int line;
+ intgo line;
if(__go_file_line(g->gopc - 1, &fn, &file, &line)) {
runtime_printf("created by %S\n", fn);
- runtime_printf("\t%S:%d\n", file, line);
+ runtime_printf("\t%S:%D\n", file, (int64) line);
}
}
}
diff --git a/libgo/runtime/runtime.h b/libgo/runtime/runtime.h
index e6281eaf803..72e1eb2f8b9 100644
--- a/libgo/runtime/runtime.h
+++ b/libgo/runtime/runtime.h
@@ -341,7 +341,7 @@ int32 runtime_ncpu;
/*
* common functions and data
*/
-int32 runtime_findnull(const byte*);
+intgo runtime_findnull(const byte*);
void runtime_dump(byte*, int32);
/*
@@ -614,7 +614,7 @@ extern uintptr runtime_stacks_sys;
struct backtrace_state;
extern struct backtrace_state *__go_get_backtrace_state(void);
-extern _Bool __go_file_line(uintptr, String*, String*, int *);
+extern _Bool __go_file_line(uintptr, String*, String*, intgo *);
extern byte* runtime_progname();
int32 getproccount(void);
diff --git a/libgo/runtime/string.goc b/libgo/runtime/string.goc
index d3f0c2d4b9c..240ab0ba5e4 100644
--- a/libgo/runtime/string.goc
+++ b/libgo/runtime/string.goc
@@ -54,7 +54,7 @@ func stringiter(s String, k int) (retk int) {
out:
}
-func stringiter2(s String, k int) (retk int, retv int) {
+func stringiter2(s String, k int) (retk int, retv int32) {
if(k >= s.len) {
// retk=0 is end of iteration
retk = 0;