summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-03-30 10:42:13 -0700
committerRuss Cox <rsc@golang.org>2010-03-30 10:42:13 -0700
commitfcf5392cf36c08da93fe552d42ac261db03e317b (patch)
tree869c1a41ed8f963158a3fcda5228488d9083cb4a /src
parent74119689619c24f5871056d13d07d56f69ad5f60 (diff)
downloadgolang-fcf5392cf36c08da93fe552d42ac261db03e317b.tar.gz
godefs: fix handling of negative constants
R=r CC=golang-dev http://codereview.appspot.com/849041
Diffstat (limited to 'src')
-rw-r--r--src/cmd/godefs/main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/cmd/godefs/main.c b/src/cmd/godefs/main.c
index 3735167d2..6ff542f48 100644
--- a/src/cmd/godefs/main.c
+++ b/src/cmd/godefs/main.c
@@ -294,8 +294,14 @@ Continue:
Bprint(bout, "// Constants\n");
if(ncon > 0) {
Bprint(bout, lang->constbegin);
- for(i=0; i<ncon; i++)
- Bprint(bout, lang->constfmt, con[i].name, con[i].value & 0xFFFFFFFF);
+ for(i=0; i<ncon; i++) {
+ // Go can handle negative constants,
+ // but C enums may not be able to.
+ if(lang == &go)
+ Bprint(bout, lang->constfmt, con[i].name, con[i].value);
+ else
+ Bprint(bout, lang->constfmt, con[i].name, con[i].value & 0xFFFFFFFF);
+ }
Bprint(bout, lang->constend);
}
Bprint(bout, "\n");