Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(55)

Side by Side Diff: src/cmd/gc/go.h

Issue 9033043: code review 9033043: cmd/gc: fix some overflows in the compiler (Closed)
Patch Set: diff -r 3cbb458c93cf https://code.google.com/p/go/ Created 11 years, 10 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/cmd/gc/gen.c ('k') | src/cmd/gc/pgen.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2009 The Go Authors. All rights reserved. 1 // Copyright 2009 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style 2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file. 3 // license that can be found in the LICENSE file.
4 4
5 #include <bio.h> 5 #include <bio.h>
6 6
7 #undef OAPPEND 7 #undef OAPPEND
8 8
9 // avoid <ctype.h> 9 // avoid <ctype.h>
10 #undef isblank 10 #undef isblank
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 uchar deferwidth; 149 uchar deferwidth;
150 uchar broke; // broken type definition. 150 uchar broke; // broken type definition.
151 uchar isddd; // TFIELD is ... argument 151 uchar isddd; // TFIELD is ... argument
152 uchar align; 152 uchar align;
153 153
154 Node* nod; // canonical OTYPE node 154 Node* nod; // canonical OTYPE node
155 Type* orig; // original type (type literal or predefined typ e) 155 Type* orig; // original type (type literal or predefined typ e)
156 int lineno; 156 int lineno;
157 157
158 // TFUNC 158 // TFUNC
159 » uchar» thistuple; 159 » int» thistuple;
160 » uchar» outtuple; 160 » int» outtuple;
161 » uchar» intuple; 161 » int» intuple;
162 uchar outnamed; 162 uchar outnamed;
163 163
164 Type* method; 164 Type* method;
165 Type* xmethod; 165 Type* xmethod;
166 166
167 Sym* sym; 167 Sym* sym;
168 int32 vargen; // unique name for OTYPE/ONAME 168 int32 vargen; // unique name for OTYPE/ONAME
169 169
170 Node* nname; 170 Node* nname;
171 vlong argwid; 171 vlong argwid;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 uchar ullman; // sethi/ullman number 245 uchar ullman; // sethi/ullman number
246 uchar addable; // type of addressability - 0 is not addressable 246 uchar addable; // type of addressability - 0 is not addressable
247 uchar trecur; // to detect loops 247 uchar trecur; // to detect loops
248 uchar etype; // op for OASOP, etype for OTYPE, exclam for exp ort 248 uchar etype; // op for OASOP, etype for OTYPE, exclam for exp ort
249 uchar bounded; // bounds check unnecessary 249 uchar bounded; // bounds check unnecessary
250 uchar class; // PPARAM, PAUTO, PEXTERN, etc 250 uchar class; // PPARAM, PAUTO, PEXTERN, etc
251 uchar method; // OCALLMETH name 251 uchar method; // OCALLMETH name
252 uchar embedded; // ODCLFIELD embedded type 252 uchar embedded; // ODCLFIELD embedded type
253 uchar colas; // OAS resulting from := 253 uchar colas; // OAS resulting from :=
254 uchar diag; // already printed error about this 254 uchar diag; // already printed error about this
255 uchar esc; // EscXXX
256 uchar noescape; // func arguments do not escape 255 uchar noescape; // func arguments do not escape
257 uchar funcdepth;
258 uchar builtin; // built-in name, like len or close 256 uchar builtin; // built-in name, like len or close
259 uchar walkdef; 257 uchar walkdef;
260 uchar typecheck; 258 uchar typecheck;
261 uchar local; 259 uchar local;
262 uchar dodata; 260 uchar dodata;
263 uchar initorder; 261 uchar initorder;
264 uchar used; 262 uchar used;
265 uchar isddd; 263 uchar isddd;
266 uchar readonly; 264 uchar readonly;
267 uchar implicit; 265 uchar implicit;
268 uchar addrtaken; // address taken, even if not moved to heap 266 uchar addrtaken; // address taken, even if not moved to heap
269 uchar dupok; // duplicate definitions ok (for func) 267 uchar dupok; // duplicate definitions ok (for func)
270 schar likely; // likeliness of if statement 268 schar likely; // likeliness of if statement
271 uchar hasbreak; // has break statement 269 uchar hasbreak; // has break statement
270 uint esc; // EscXXX
271 int funcdepth;
272 272
273 // most nodes 273 // most nodes
274 Type* type; 274 Type* type;
275 Node* orig; // original form, for printing, and tracking cop ies of ONAMEs 275 Node* orig; // original form, for printing, and tracking cop ies of ONAMEs
276 276
277 // func 277 // func
278 Node* nname; 278 Node* nname;
279 Node* shortname; 279 Node* shortname;
280 NodeList* enter; 280 NodeList* enter;
281 NodeList* exit; 281 NodeList* exit;
(...skipping 814 matching lines...) Expand 10 before | Expand all | Expand 10 after
1096 /* 1096 /*
1097 * gen.c 1097 * gen.c
1098 */ 1098 */
1099 void addrescapes(Node *n); 1099 void addrescapes(Node *n);
1100 void cgen_as(Node *nl, Node *nr); 1100 void cgen_as(Node *nl, Node *nr);
1101 void cgen_callmeth(Node *n, int proc); 1101 void cgen_callmeth(Node *n, int proc);
1102 void cgen_eface(Node* n, Node* res); 1102 void cgen_eface(Node* n, Node* res);
1103 void cgen_slice(Node* n, Node* res); 1103 void cgen_slice(Node* n, Node* res);
1104 void clearlabels(void); 1104 void clearlabels(void);
1105 void checklabels(void); 1105 void checklabels(void);
1106 int» dotoffset(Node *n, int *oary, Node **nn); 1106 int» dotoffset(Node *n, int64 *oary, Node **nn);
1107 void gen(Node *n); 1107 void gen(Node *n);
1108 void genlist(NodeList *l); 1108 void genlist(NodeList *l);
1109 Node* sysfunc(char *name); 1109 Node* sysfunc(char *name);
1110 void tempname(Node *n, Type *t); 1110 void tempname(Node *n, Type *t);
1111 Node* temp(Type*); 1111 Node* temp(Type*);
1112 1112
1113 /* 1113 /*
1114 * init.c 1114 * init.c
1115 */ 1115 */
1116 void fninit(NodeList *n); 1116 void fninit(NodeList *n);
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
1484 #pragma varargck type "T" Type* 1484 #pragma varargck type "T" Type*
1485 #pragma varargck type "lT" Type* 1485 #pragma varargck type "lT" Type*
1486 #pragma varargck type "V" Val* 1486 #pragma varargck type "V" Val*
1487 #pragma varargck type "Y" char* 1487 #pragma varargck type "Y" char*
1488 #pragma varargck type "Z" Strlit* 1488 #pragma varargck type "Z" Strlit*
1489 1489
1490 /* 1490 /*
1491 * racewalk.c 1491 * racewalk.c
1492 */ 1492 */
1493 void racewalk(Node *fn); 1493 void racewalk(Node *fn);
OLDNEW
« no previous file with comments | « src/cmd/gc/gen.c ('k') | src/cmd/gc/pgen.c » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b