summaryrefslogtreecommitdiff
path: root/src/cmd/gc
AgeCommit message (Collapse)AuthorFilesLines
2009-08-08plateau in divide by a constantKen Thompson1-1/+1
still to do - overflow, mod R=rsc OCL=32927 CL=32927
2009-08-07bug159Russ Cox1-1/+14
R=ken OCL=32902 CL=32914
2009-08-07bug185 - return b,a from func() (a,b int)Russ Cox1-4/+34
R=ken OCL=32900 CL=32900
2009-08-07bug184 - assignment compatibility in unpacked multireturnRuss Cox2-16/+31
R=ken OCL=32890 CL=32894
2009-08-07bug183 - embedded vs non-embedded struct field in eqtypeRuss Cox1-0/+2
R=ken OCL=32888 CL=32888
2009-08-07bug182 - compiler crashRuss Cox1-1/+1
R=ken OCL=32887 CL=32887
2009-08-07bug181 - type T *struct { T } is an invalid embedded typeRuss Cox3-2/+11
R=ken OCL=32886 CL=32886
2009-08-07clean up a few error messages;Russ Cox2-2/+2
disable func redeclaration mismatch test; fix golden.out R=ken OCL=32883 CL=32883
2009-08-07forward declarations not necessary.Russ Cox16-668/+990
still to do: * initializer cycle detection * nicer error for type checking cycles R=ken OCL=32855 CL=32880
2009-08-05delay range processing. old2new is goneRuss Cox9-363/+286
R=ken OCL=32780 CL=32780
2009-08-05delay := processingRuss Cox8-326/+214
R=ken OCL=32772 CL=32772
2009-08-04make Syms smaller.Russ Cox10-408/+204
collapse a lot of duplication in dcl.c switch to NodeList* from Dcl* R=ken OCL=32770 CL=32770
2009-08-04move various bits of code aroundRuss Cox7-1238/+1232
and delete some dead code. no actual changes here. R=ken OCL=32764 CL=32764
2009-08-04delayed evaluation of var blocksRuss Cox6-48/+97
R=ken OCL=32750 CL=32753
2009-08-04move select into its own file.Russ Cox6-237/+184
split into typecheck + walk R=ken OCL=32726 CL=32726
2009-08-04type checking of assignments, switch, if, forRuss Cox6-643/+411
R=ken OCL=32716 CL=32720
2009-08-03more 6g reorg; checkpoint.Russ Cox9-1354/+1130
typecheck.c is now responsible for all type checking except for assignment and function argument "..." R=ken OCL=32661 CL=32667
2009-07-31missed in last checkinRuss Cox1-0/+20
R=ken OCL=32581 CL=32581
2009-07-31checkpoint; still plenty to clean upRuss Cox11-1039/+490
R=ken OCL=32576 CL=32580
2009-07-30delete some code from walkexpr that is nowRuss Cox3-294/+89
handled by typecheck. second switch is gone move floating point minus into back end R=ken OCL=32558 CL=32558
2009-07-30typechecking checkpoint.Russ Cox12-546/+1318
started to move typechecking to another file. can build entire tree still, but lots of work is duplicated. much to clean up. R=ken OCL=32536 CL=32543
2009-07-29break and continue fixesRuss Cox1-28/+27
labeled break/continue was using first loop with any label, not first loop with the right label. R=ken OCL=32453 CL=32458
2009-07-29introduce typecheck pass before walkexpr.Russ Cox5-109/+393
not complete but compiler still works. R=ken OCL=32424 CL=32426
2009-07-29convert walkexpr to take Node**; drop indirRuss Cox7-215/+225
R=ken OCL=32421 CL=32421
2009-07-29expression printer; %#NRuss Cox4-0/+340
R=ken OCL=32419 CL=32419
2009-07-28make every func literal expression allocate,Russ Cox1-68/+60
so that == on func means that the functions originated in the same execution of a func literal or definition. before, there was an inconsistency: func() {x++} != func() {x++} but func() {} == func() {} this CL makes the second case != too, just like make(map[int]int) != make(map[int]int) R=r DELTA=202 (71 added, 62 deleted, 69 changed) OCL=32393 CL=32398
2009-07-28bug177: anonymous struct fields in reflectRuss Cox1-1/+1
(reported by iant) R=r DELTA=50 (32 added, 12 deleted, 6 changed) OCL=32263 CL=32385
2009-07-27constant keys for array initializersRuss Cox2-1/+4
R=ken OCL=32261 CL=32261
2009-07-27bug170; fix test for bug175Russ Cox1-1/+5
R=ken OCL=32255 CL=32255
2009-07-27multiple return in := bugRuss Cox2-0/+13
R=ken OCL=32253 CL=32253
2009-07-27print(1<<x)Russ Cox2-4/+5
R=ken OCL=32252 CL=32252
2009-07-27named string type bugsRuss Cox1-5/+13
R=ken OCL=32244 CL=32244
2009-07-27catchRuss Cox1-3/+9
a := true; a |= a; in the front end. R=ken OCL=32240 CL=32243
2009-07-27do not insert implicit "return;" in empty function bodyRuss Cox2-2/+2
R=ken OCL=32239 CL=32239
2009-07-21do not use ONONAMEs for line number information,Russ Cox1-0/+1
just like ONAME etc. R=ken OCL=31964 CL=31964
2009-07-20fix cut-and-paste bugs in error messagesRuss Cox1-5/+6
R=ken OCL=31890 CL=31890
2009-07-20avoid strncat in formatters.Russ Cox1-94/+55
the n argument to strncat is the maximum number of bytes to read from the src, not the total size of the destination. R=ken OCL=31871 CL=31875
2009-07-20explain selectsend problemRuss Cox1-1/+4
R=ken OCL=31865 CL=31867
2009-07-17another baby step.Russ Cox4-68/+70
excluding import data, no yacc node has type Type* anymore. 0 reduce/reduce conflicts. R=ken OCL=31793 CL=31795
2009-07-17baby step: const decls can refer to futureRuss Cox9-151/+363
consts in the same factored block const ( X = Y; Y = 2; ) R=ken OCL=31782 CL=31782
2009-07-17another step toward eliminating forward declarations.Russ Cox13-1897/+1744
introduce NodeList* type in compiler to replace OLIST. this clarifies where lists can and cannot occur. list append and concatenation are now cheap. the _r rules are gone from yacc. rev and unrev are gone. no more lists of lists. the representation of assignments is a bit clunkier. split into OAS (1=1) and OAS2 (2 or more on one side). delete dead chanrecv3 code. delay construction of func types. R=ken OCL=31745 CL=31762
2009-07-13step toward no function prototypes.Russ Cox5-227/+368
delay evaluation of most types (all but func) from parse time to type check time. R=ken OCL=31585 CL=31585
2009-07-13bug148.Russ Cox1-1/+1
R=ken OCL=31582 CL=31582
2009-07-10cleanup in preparation for new scoping.Russ Cox7-491/+409
walkstate -> walkstmt walktype -> walkexpr; stmts moved to walkstmt walktype and friends have a final Node **init argument that can have side effects appended, making it more explicit when they do and do not happen. this replaces the old global addtop and addtotop. delete switch map and interface conversion cases (dropped from the language months ago). R=ken OCL=31465 CL=31468
2009-07-10segfaultKen Thompson1-1/+2
R=rsc OCL=31467 CL=31467
2009-07-09segment faultKen Thompson1-0/+4
R=rsc OCL=31396 CL=31396
2009-07-08another nil referenceKen Thompson1-0/+2
R=rsc OCL=31373 CL=31373
2009-07-08ANY is already checked separately,Russ Cox2-19/+0
so remove code from go.y. show original types in badtype; don't remove pointers. not sure why this was here but it confuses things if the bad part involves two named pointer types with different names but the same pointed-at type. R=ken OCL=31369 CL=31369
2009-07-07method expansion bugsRuss Cox3-5/+9
R=ken OCL=31310 CL=31310
2009-07-07bug167Russ Cox1-2/+3
R=ken OCL=31295 CL=31295