summaryrefslogtreecommitdiff
path: root/sys/src/cmd
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-06-19 23:50:33 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2019-06-19 23:50:33 +0200
commit63191949b911658c3774e727061fcf166ad9ace2 (patch)
tree4457246e240e6d4b82a7fbbee0aef1374c519bfe /sys/src/cmd
parent159f96c534563f26edeeb227cd00f1bdd3bd2596 (diff)
cc: remove nullwarn() from OCAST codegen, zap void casts
implicit casts would cause spurious "result of operation not used" warnings such as ape's stdio putc() macro. make (void) casts non-ops when the casted expression has no side effects. this avoid spurious warning with ape's assert() macro.
Diffstat (limited to 'sys/src/cmd')
-rw-r--r--sys/src/cmd/1c/cgen.c5
-rw-r--r--sys/src/cmd/2c/cgen.c5
-rw-r--r--sys/src/cmd/5c/cgen.c7
-rw-r--r--sys/src/cmd/6c/cgen.c5
-rw-r--r--sys/src/cmd/6c/sgen.c2
-rw-r--r--sys/src/cmd/7c/cgen.c2
-rw-r--r--sys/src/cmd/8c/cgen.c5
-rw-r--r--sys/src/cmd/cc/com.c5
-rw-r--r--sys/src/cmd/kc/cgen.c5
-rw-r--r--sys/src/cmd/qc/cgen.c5
-rw-r--r--sys/src/cmd/vc/cgen.c5
11 files changed, 16 insertions, 35 deletions
diff --git a/sys/src/cmd/1c/cgen.c b/sys/src/cmd/1c/cgen.c
index d790f75e9..bde50d53c 100644
--- a/sys/src/cmd/1c/cgen.c
+++ b/sys/src/cmd/1c/cgen.c
@@ -376,10 +376,7 @@ cgen(Node *n, int result, Node *nn)
case OCAST:
if(result == D_NONE) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, D_NONE, Z);
+ cgen(l, D_NONE, Z);
break;
}
lg = result;
diff --git a/sys/src/cmd/2c/cgen.c b/sys/src/cmd/2c/cgen.c
index ca78a8c55..eae220fcd 100644
--- a/sys/src/cmd/2c/cgen.c
+++ b/sys/src/cmd/2c/cgen.c
@@ -376,10 +376,7 @@ cgen(Node *n, int result, Node *nn)
case OCAST:
if(result == D_NONE) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, D_NONE, Z);
+ cgen(l, D_NONE, Z);
break;
}
lg = result;
diff --git a/sys/src/cmd/5c/cgen.c b/sys/src/cmd/5c/cgen.c
index 05d1dd821..dae6e1872 100644
--- a/sys/src/cmd/5c/cgen.c
+++ b/sys/src/cmd/5c/cgen.c
@@ -399,10 +399,7 @@ cgenrel(Node *n, Node *nn, int inrel)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*
@@ -927,7 +924,7 @@ cgen64(Node *n, Node *nn)
case OCAST:
if(nn == Z){
- nullwarn(l, Z);
+ cgen(l, Z);
goto Out;
}
if(typeilp[n->type->etype] && typev[l->type->etype]){
diff --git a/sys/src/cmd/6c/cgen.c b/sys/src/cmd/6c/cgen.c
index b2d54d577..3a5de9e21 100644
--- a/sys/src/cmd/6c/cgen.c
+++ b/sys/src/cmd/6c/cgen.c
@@ -976,10 +976,7 @@ cgen(Node *n, Node *nn)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*
diff --git a/sys/src/cmd/6c/sgen.c b/sys/src/cmd/6c/sgen.c
index 936559bea..284c476d0 100644
--- a/sys/src/cmd/6c/sgen.c
+++ b/sys/src/cmd/6c/sgen.c
@@ -326,7 +326,7 @@ brk:
break;
case OCAST:
- if(l->type->etype == TUVLONG && typefd[n->type->etype])
+ if(l != Z && l->type->etype == TUVLONG && typefd[n->type->etype])
n->complex += 2;
break;
diff --git a/sys/src/cmd/7c/cgen.c b/sys/src/cmd/7c/cgen.c
index c8e1cbe7f..2e6010b81 100644
--- a/sys/src/cmd/7c/cgen.c
+++ b/sys/src/cmd/7c/cgen.c
@@ -442,7 +442,7 @@ cgenrel(Node *n, Node *nn, int inrel)
case OCAST:
if(nn == Z) {
- nullwarn(l, Z);
+ cgen(l, Z);
break;
}
/*
diff --git a/sys/src/cmd/8c/cgen.c b/sys/src/cmd/8c/cgen.c
index cd0288bba..0c26454e8 100644
--- a/sys/src/cmd/8c/cgen.c
+++ b/sys/src/cmd/8c/cgen.c
@@ -994,10 +994,7 @@ cgen(Node *n, Node *nn)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*
diff --git a/sys/src/cmd/cc/com.c b/sys/src/cmd/cc/com.c
index 9fcf9861f..46a59d49a 100644
--- a/sys/src/cmd/cc/com.c
+++ b/sys/src/cmd/cc/com.c
@@ -1073,6 +1073,11 @@ loop:
break;
case OCAST:
+ if(n->type == types[TVOID] && !side(l)){
+ n->left = Z;
+ n->type = T;
+ break;
+ }
if(castucom(n))
warn(n, "32-bit unsigned complement zero-extended to 64 bits");
ccom(l);
diff --git a/sys/src/cmd/kc/cgen.c b/sys/src/cmd/kc/cgen.c
index 14be95d6a..ad295177b 100644
--- a/sys/src/cmd/kc/cgen.c
+++ b/sys/src/cmd/kc/cgen.c
@@ -358,10 +358,7 @@ cgen(Node *n, Node *nn)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*
diff --git a/sys/src/cmd/qc/cgen.c b/sys/src/cmd/qc/cgen.c
index 104a36473..b2391e3f8 100644
--- a/sys/src/cmd/qc/cgen.c
+++ b/sys/src/cmd/qc/cgen.c
@@ -395,10 +395,7 @@ cgen(Node *n, Node *nn)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*
diff --git a/sys/src/cmd/vc/cgen.c b/sys/src/cmd/vc/cgen.c
index fb43c55e6..7b9ec4808 100644
--- a/sys/src/cmd/vc/cgen.c
+++ b/sys/src/cmd/vc/cgen.c
@@ -359,10 +359,7 @@ cgen(Node *n, Node *nn)
case OCAST:
if(nn == Z) {
- if(n->type != types[TVOID])
- nullwarn(l, Z);
- else
- cgen(l, Z);
+ cgen(l, Z);
break;
}
/*