diff options
author | Russ Cox <rsc@golang.org> | 2010-03-30 10:42:13 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2010-03-30 10:42:13 -0700 |
commit | fcf5392cf36c08da93fe552d42ac261db03e317b (patch) | |
tree | 869c1a41ed8f963158a3fcda5228488d9083cb4a /src | |
parent | 74119689619c24f5871056d13d07d56f69ad5f60 (diff) | |
download | golang-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.c | 10 |
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"); |