diff options
Diffstat (limited to 'src/cmd')
-rw-r--r-- | src/cmd/6c/txt.c | 4 | ||||
-rw-r--r-- | src/cmd/6g/peep.c | 2 | ||||
-rw-r--r-- | src/cmd/dist/build.c | 3 | ||||
-rw-r--r-- | src/cmd/ld/dwarf.c | 18 |
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. |