summaryrefslogtreecommitdiff
path: root/src/cmd/gc/subr.c
AgeCommit message (Collapse)AuthorFilesLines
2009-11-08bug212, bug213.Russ Cox1-7/+12
R=ken http://go/go-review/1026032
2009-10-20address bug193 and add note to spec about it.Russ Cox1-3/+4
R=ken OCL=35920 CL=35920
2009-10-20bug162, over and overRuss Cox1-6/+5
R=ken OCL=35919 CL=35919
2009-10-19bug196Russ Cox1-1/+28
R=ken OCL=35905 CL=35905
2009-10-19bug190.Russ Cox1-83/+0
also eliminate float80 dregs R=ken OCL=35894 CL=35896
2009-10-15rename sys functions to runtime,Russ Cox1-5/+6
because they are in package runtime. another step to enforcing package boundaries. R=r DELTA=732 (114 added, 93 deleted, 525 changed) OCL=35811 CL=35824
2009-10-12sort errors by line numberRuss Cox1-28/+119
turn off testdclstack and "not used" errors when there are syntax errors. BUG=2181825 R=ken OCL=35606 CL=35608
2009-10-07better handling of mistaken top-level variableRuss Cox1-1/+1
references during the parsing of :=. the base problem is that when reading a,b,c,d the parser makes those refer to existing variables, which might create a few stub top-level ones for undefined names, but then if a := is the next token, we need to undo those stubs. this was causing problems in multifile packages in which one file used a := variable named rpc and the other imported a package named rpc. R=ken OCL=35446 CL=35446
2009-09-21ideal bools and related fixesRuss Cox1-5/+6
R=ken OCL=34859 CL=34865
2009-09-17check for unused importsRuss Cox1-2/+10
R=ken OCL=34732 CL=34756
2009-09-09defining package block names must overrideRuss Cox1-3/+3
universe block names. BUG=2097244 R=ken OCL=34295 CL=34473
2009-09-08write-only variable _Russ Cox1-0/+14
R=ken OCL=34465 CL=34470
2009-09-05composit literalsKen Thompson1-0/+3
plateau - more to come R=rsc OCL=34413 CL=34413
2009-09-03stop using filename for disambiguation within a package.Russ Cox1-6/+3
R=ken OCL=34339 CL=34341
2009-09-02fix one bug involving [...] constructors.Russ Cox1-0/+2
added iant's bug202 (in main code) and ken's bug203 (in init function). bug187 remains at large. R=ken OCL=34293 CL=34293
2009-09-02the last bug involving type hashesRuss Cox1-53/+45
R=ken OCL=34244 CL=34249
2009-09-01type switch bug involving function parameter namesRuss Cox1-2/+6
R=ken OCL=34232 CL=34232
2009-08-30cleanup getting ready for static initKen Thompson1-1/+1
R=rsc OCL=34090 CL=34090
2009-08-27clean up ideal handling; reject attemptsRuss Cox1-0/+10
to write type descriptors for ideal types R=ken OCL=33958 CL=33958
2009-08-20symbol bugs.Russ Cox1-0/+10
do not emit unreachable data symbols. R=austin DELTA=103 (71 added, 4 deleted, 28 changed) OCL=33325 CL=33622
2009-08-19produce diagnostic forRuss Cox1-0/+1
import "fmt" var fmt = 1 R=ken OCL=33556 CL=33561
2009-08-19try to do better line number reportingRuss Cox1-13/+21
in the presence of yacc lookahead. better but still not perfect R=ken OCL=33541 CL=33541
2009-08-19fix import dot bugRuss Cox1-1/+1
R=ken OCL=33526 CL=33528
2009-08-12rm outfile if 6g exits with an errorRuss Cox1-3/+6
R=ken OCL=33134 CL=33141
2009-08-12delete code for forward type declarationsRuss Cox1-3/+1
R=ken OCL=33108 CL=33113
2009-08-10fix indirect errorRuss Cox1-1/+3
x.go:3: invalid indirect of X (type int) was x.go:3: invalid indirect of nil R=ken OCL=33008 CL=33008
2009-08-091. integer division by a constant done.Ken Thompson1-0/+267
2. moved functions from 6g to gc for portability to other families. 3. added rotate-carry instructions to peek and reg. R=rsc OCL=32946 CL=32946
2009-08-07bug183 - embedded vs non-embedded struct field in eqtypeRuss Cox1-0/+2
R=ken OCL=32888 CL=32888
2009-08-07forward declarations not necessary.Russ Cox1-93/+28
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 Cox1-10/+8
R=ken OCL=32780 CL=32780
2009-08-05delay := processingRuss Cox1-1/+1
R=ken OCL=32772 CL=32772
2009-08-04make Syms smaller.Russ Cox1-26/+18
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 Cox1-13/+113
and delete some dead code. no actual changes here. R=ken OCL=32764 CL=32764
2009-08-04move select into its own file.Russ Cox1-0/+9
split into typecheck + walk R=ken OCL=32726 CL=32726
2009-08-03more 6g reorg; checkpoint.Russ Cox1-18/+12
typecheck.c is now responsible for all type checking except for assignment and function argument "..." R=ken OCL=32661 CL=32667
2009-07-31checkpoint; still plenty to clean upRuss Cox1-124/+4
R=ken OCL=32576 CL=32580
2009-07-30delete some code from walkexpr that is nowRuss Cox1-0/+3
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 Cox1-5/+7
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-29introduce typecheck pass before walkexpr.Russ Cox1-3/+1
not complete but compiler still works. R=ken OCL=32424 CL=32426
2009-07-29convert walkexpr to take Node**; drop indirRuss Cox1-5/+5
R=ken OCL=32421 CL=32421
2009-07-29expression printer; %#NRuss Cox1-0/+66
R=ken OCL=32419 CL=32419
2009-07-27multiple return in := bugRuss Cox1-0/+9
R=ken OCL=32253 CL=32253
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-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-17baby step: const decls can refer to futureRuss Cox1-7/+17
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 Cox1-215/+137
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 Cox1-16/+34
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 Cox1-10/+17
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-08ANY is already checked separately,Russ Cox1-15/+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