aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/6c/txt.c4
-rw-r--r--src/cmd/6g/peep.c2
-rw-r--r--src/cmd/dist/build.c3
-rw-r--r--src/cmd/ld/dwarf.c18
4 files changed, 15 insertions, 12 deletions
diff --git a/src/cmd/6c/txt.c b/src/cmd/6c/txt.c
index 3bdbf410ea..8008512a2f 100644
--- a/src/cmd/6c/txt.c
+++ b/src/cmd/6c/txt.c
@@ -992,7 +992,7 @@ gmove(Node *f, Node *t)
f->vconst &= 0xffff;
if(f->vconst & 0x8000){
f->vconst |= 0xffff0000;
- f->vconst |= (vlong)~0 << 32;
+ f->vconst |= (vlong)((~(uvlong)0) << 32);
}
a = AMOVL;
}
@@ -1042,7 +1042,7 @@ gmove(Node *f, Node *t)
f->vconst &= 0xff;
if(f->vconst & 0x80){
f->vconst |= 0xffffff00;
- f->vconst |= (vlong)~0 << 32;
+ f->vconst |= (vlong)((~(uvlong)0) << 32);
}
a = AMOVQ;
}
diff --git a/src/cmd/6g/peep.c b/src/cmd/6g/peep.c
index 24617836fe..deed9d2c0b 100644
--- a/src/cmd/6g/peep.c
+++ b/src/cmd/6g/peep.c
@@ -768,7 +768,7 @@ copyu(Prog *p, Adr *v, Adr *s)
return 3;
case ACALL:
- if(REGEXT && v->type <= REGEXT && v->type > exregoffset)
+ if(REGEXT != 0 && v->type <= REGEXT && v->type > exregoffset)
return 2;
if(REGARG >= 0 && v->type == (uchar)REGARG)
return 2;
diff --git a/src/cmd/dist/build.c b/src/cmd/dist/build.c
index 8d82167b99..614989b93a 100644
--- a/src/cmd/dist/build.c
+++ b/src/cmd/dist/build.c
@@ -475,6 +475,7 @@ static char *proto_gccargs[] = {
"-Wstrict-prototypes",
"-Wextra",
"-Wunused",
+ "-Wno-unknown-warning-option",
"-Wno-sign-compare",
"-Wno-missing-braces",
"-Wno-parentheses",
@@ -482,6 +483,8 @@ static char *proto_gccargs[] = {
"-Wno-switch",
"-Wno-comment",
"-Wno-missing-field-initializers",
+ "-Wno-implicit-fallthrough",
+ "-Wno-stringop-truncation",
"-fno-common",
"-ggdb",
"-pipe",
diff --git a/src/cmd/ld/dwarf.c b/src/cmd/ld/dwarf.c
index dfe515c3c4..15db46c2dc 100644
--- a/src/cmd/ld/dwarf.c
+++ b/src/cmd/ld/dwarf.c
@@ -86,7 +86,7 @@ addrput(vlong addr)
}
static int
-uleb128enc(uvlong v, char* dst)
+uleb128enc(uvlong v, uchar* dst)
{
uint8 c, len;
@@ -104,7 +104,7 @@ uleb128enc(uvlong v, char* dst)
};
static int
-sleb128enc(vlong v, char *dst)
+sleb128enc(vlong v, uchar *dst)
{
uint8 c, s, len;
@@ -125,15 +125,15 @@ sleb128enc(vlong v, char *dst)
static void
uleb128put(vlong v)
{
- char buf[10];
- strnput(buf, uleb128enc(v, buf));
+ uchar buf[10];
+ strnput((char*)buf, uleb128enc(v, buf));
}
static void
sleb128put(vlong v)
{
- char buf[10];
- strnput(buf, sleb128enc(v, buf));
+ uchar buf[10];
+ strnput((char*)buf, sleb128enc(v, buf));
}
/*
@@ -854,7 +854,7 @@ reversetree(DWDie** list)
static void
newmemberoffsetattr(DWDie *die, int32 offs)
{
- char block[10];
+ uchar block[10];
int i;
i = 0;
@@ -1471,7 +1471,7 @@ putpclcdelta(vlong delta_pc, vlong delta_lc)
static void
newcfaoffsetattr(DWDie *die, int32 offs)
{
- char block[10];
+ uchar block[10];
int i;
i = 0;
@@ -1760,7 +1760,7 @@ writeframes(void)
uleb128put(DWARFREGSP); // register SP (**ABI-dependent, defined in l.h)
uleb128put(PtrSize); // offset
- cput(DW_CFA_offset + FAKERETURNCOLUMN); // return address
+ cput((char)(DW_CFA_offset + FAKERETURNCOLUMN)); // return address
uleb128put(-PtrSize / DATAALIGNMENTFACTOR); // at cfa - x*4
// 4 is to exclude the length field.