added printn and panicn
prints that insert spaces and new line
R=r
OCL=16370
CL=16370
diff --git a/src/cmd/gc/go.h b/src/cmd/gc/go.h
index 073001e..d38c8cb 100644
--- a/src/cmd/gc/go.h
+++ b/src/cmd/gc/go.h
@@ -269,7 +269,7 @@
ORETURN, OFOR, OIF, OSWITCH,
OAS, OASOP, OCASE, OXCASE, OFALL, OXFALL,
OGOTO, OPROC, ONEW, OEMPTY, OSELECT,
- OLEN, OCAP, OPANIC, OPRINT, OTYPEOF,
+ OLEN, OCAP, OPANIC, OPANICN, OPRINT, OPRINTN, OTYPEOF,
OOROR,
OANDAND,
@@ -695,7 +695,7 @@
Node* ascompatet(int, Node**, Type**, int);
Node* ascompatte(int, Type**, Node**, int);
int ascompat(Type*, Type*);
-Node* prcompat(Node*);
+Node* prcompat(Node*, int);
Node* nodpanic(int32);
Node* newcompat(Node*);
Node* stringop(Node*, int);
diff --git a/src/cmd/gc/go.y b/src/cmd/gc/go.y
index e4bcee3..46b01e3 100644
--- a/src/cmd/gc/go.y
+++ b/src/cmd/gc/go.y
@@ -18,7 +18,7 @@
%token <sym> LPACKAGE LIMPORT LEXPORT
%token <sym> LMAP LCHAN LINTERFACE LFUNC LSTRUCT
%token <sym> LCOLAS LFALL LRETURN
-%token <sym> LNEW LLEN LCAP LTYPEOF LPANIC LPRINT
+%token <sym> LNEW LLEN LCAP LTYPEOF LPANIC LPANICN LPRINT LPRINTN
%token <sym> LVAR LTYPE LCONST LCONVERT LSELECT
%token <sym> LFOR LIF LELSE LSWITCH LCASE LDEFAULT
%token <sym> LBREAK LCONTINUE LGO LGOTO LRANGE
@@ -361,10 +361,18 @@
{
$$ = nod(OPRINT, $3, N);
}
+| LPRINTN '(' oexpr_list ')'
+ {
+ $$ = nod(OPRINTN, $3, N);
+ }
| LPANIC '(' oexpr_list ')'
{
$$ = nod(OPANIC, $3, N);
}
+| LPANICN '(' oexpr_list ')'
+ {
+ $$ = nod(OPANICN, $3, N);
+ }
inc_stmt:
expr LINC
@@ -896,7 +904,9 @@
| LLEN
| LCAP
| LPANIC
+| LPANICN
| LPRINT
+| LPRINTN
| LNEW
| LBASETYPE
| LTYPEOF
diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c
index dce5c14..707b61a 100644
--- a/src/cmd/gc/lex.c
+++ b/src/cmd/gc/lex.c
@@ -998,7 +998,9 @@
"nil", LNIL, Txxx,
"package", LPACKAGE, Txxx,
"panic", LPANIC, Txxx,
+ "panicn", LPANICN, Txxx,
"print", LPRINT, Txxx,
+ "printn", LPRINTN, Txxx,
"range", LRANGE, Txxx,
"return", LRETURN, Txxx,
"select", LSELECT, Txxx,
diff --git a/src/cmd/gc/subr.c b/src/cmd/gc/subr.c
index f659c17..4514f39 100644
--- a/src/cmd/gc/subr.c
+++ b/src/cmd/gc/subr.c
@@ -693,7 +693,9 @@
[OFALL] = "FALL",
[OXFALL] = "XFALL",
[OPANIC] = "PANIC",
+ [OPANICN] = "PANICN",
[OPRINT] = "PRINT",
+ [OPRINTN] = "PRINTN",
[OXXX] = "XXX",
};
diff --git a/src/cmd/gc/sys.go b/src/cmd/gc/sys.go
index a969ace..abc6288 100644
--- a/src/cmd/gc/sys.go
+++ b/src/cmd/gc/sys.go
@@ -17,6 +17,8 @@
func printstring(string);
func printpointer(*any);
func printinter(any);
+func printnl();
+func printsp();
func catstring(string, string) string;
func cmpstring(string, string) int32;
@@ -92,6 +94,8 @@
printstring
printpointer
printinter
+ printnl
+ printsp
// op string
catstring
diff --git a/src/cmd/gc/sysimport.c b/src/cmd/gc/sysimport.c
index ab12446..b49e6ba 100644
--- a/src/cmd/gc/sysimport.c
+++ b/src/cmd/gc/sysimport.c
@@ -2,10 +2,10 @@
"package sys\n"
"type sys._esys_002 {}\n"
"type sys._esys_003 *sys.any\n"
- "type sys._osys_457 {_esys_455 sys._esys_003}\n"
+ "type sys._osys_461 {_esys_459 sys._esys_003}\n"
"type sys.uint32 6\n"
- "type sys._isys_459 {_esys_456 sys.uint32}\n"
- "type sys._esys_001 (sys._esys_002 sys._osys_457 sys._isys_459)\n"
+ "type sys._isys_463 {_esys_460 sys.uint32}\n"
+ "type sys._esys_001 (sys._esys_002 sys._osys_461 sys._isys_463)\n"
"var !sys.mal sys._esys_001\n"
"type sys._esys_005 {}\n"
"type sys._esys_006 {}\n"
@@ -25,337 +25,347 @@
"type sys._esys_017 {}\n"
"type sys._esys_018 {}\n"
"type sys.int32 5\n"
- "type sys._isys_467 {_esys_466 sys.int32}\n"
- "type sys._esys_016 (sys._esys_017 sys._esys_018 sys._isys_467)\n"
+ "type sys._isys_471 {_esys_470 sys.int32}\n"
+ "type sys._esys_016 (sys._esys_017 sys._esys_018 sys._isys_471)\n"
"var !sys.panicl sys._esys_016\n"
"type sys._esys_020 {}\n"
"type sys._esys_021 {}\n"
"type sys.bool 12\n"
- "type sys._isys_472 {_esys_471 sys.bool}\n"
- "type sys._esys_019 (sys._esys_020 sys._esys_021 sys._isys_472)\n"
+ "type sys._isys_476 {_esys_475 sys.bool}\n"
+ "type sys._esys_019 (sys._esys_020 sys._esys_021 sys._isys_476)\n"
"var !sys.printbool sys._esys_019\n"
"type sys._esys_023 {}\n"
"type sys._esys_024 {}\n"
"type sys.float64 10\n"
- "type sys._isys_477 {_esys_476 sys.float64}\n"
- "type sys._esys_022 (sys._esys_023 sys._esys_024 sys._isys_477)\n"
+ "type sys._isys_481 {_esys_480 sys.float64}\n"
+ "type sys._esys_022 (sys._esys_023 sys._esys_024 sys._isys_481)\n"
"var !sys.printfloat sys._esys_022\n"
"type sys._esys_026 {}\n"
"type sys._esys_027 {}\n"
"type sys.int64 7\n"
- "type sys._isys_482 {_esys_481 sys.int64}\n"
- "type sys._esys_025 (sys._esys_026 sys._esys_027 sys._isys_482)\n"
+ "type sys._isys_486 {_esys_485 sys.int64}\n"
+ "type sys._esys_025 (sys._esys_026 sys._esys_027 sys._isys_486)\n"
"var !sys.printint sys._esys_025\n"
"type sys._esys_029 {}\n"
"type sys._esys_030 {}\n"
- "type sys._esys_031 25\n"
"type sys.string *sys._esys_031\n"
- "type sys._isys_487 {_esys_486 sys.string}\n"
- "type sys._esys_028 (sys._esys_029 sys._esys_030 sys._isys_487)\n"
+ "type sys._isys_491 {_esys_490 sys.string}\n"
+ "type sys._esys_028 (sys._esys_029 sys._esys_030 sys._isys_491)\n"
"var !sys.printstring sys._esys_028\n"
"type sys._esys_033 {}\n"
"type sys._esys_034 {}\n"
"type sys._esys_035 *sys.any\n"
- "type sys._isys_492 {_esys_491 sys._esys_035}\n"
- "type sys._esys_032 (sys._esys_033 sys._esys_034 sys._isys_492)\n"
+ "type sys._isys_496 {_esys_495 sys._esys_035}\n"
+ "type sys._esys_032 (sys._esys_033 sys._esys_034 sys._isys_496)\n"
"var !sys.printpointer sys._esys_032\n"
"type sys._esys_037 {}\n"
"type sys._esys_038 {}\n"
"type sys.any 24\n"
- "type sys._isys_497 {_esys_496 sys.any}\n"
- "type sys._esys_036 (sys._esys_037 sys._esys_038 sys._isys_497)\n"
+ "type sys._isys_501 {_esys_500 sys.any}\n"
+ "type sys._esys_036 (sys._esys_037 sys._esys_038 sys._isys_501)\n"
"var !sys.printinter sys._esys_036\n"
"type sys._esys_040 {}\n"
- "type sys._osys_504 {_esys_501 sys.string}\n"
- "type sys._isys_506 {_esys_502 sys.string _esys_503 sys.string}\n"
- "type sys._esys_039 (sys._esys_040 sys._osys_504 sys._isys_506)\n"
- "var !sys.catstring sys._esys_039\n"
+ "type sys._esys_041 {}\n"
"type sys._esys_042 {}\n"
- "type sys._osys_514 {_esys_511 sys.int32}\n"
- "type sys._isys_516 {_esys_512 sys.string _esys_513 sys.string}\n"
- "type sys._esys_041 (sys._esys_042 sys._osys_514 sys._isys_516)\n"
- "var !sys.cmpstring sys._esys_041\n"
+ "type sys._esys_039 (sys._esys_040 sys._esys_041 sys._esys_042)\n"
+ "var !sys.printnl sys._esys_039\n"
"type sys._esys_044 {}\n"
- "type sys._osys_525 {_esys_521 sys.string}\n"
- "type sys._isys_527 {_esys_522 sys.string _esys_523 sys.int32 _esys_524 sys.int32}\n"
- "type sys._esys_043 (sys._esys_044 sys._osys_525 sys._isys_527)\n"
- "var !sys.slicestring sys._esys_043\n"
+ "type sys._esys_045 {}\n"
"type sys._esys_046 {}\n"
- "type sys.uint8 2\n"
- "type sys._osys_536 {_esys_533 sys.uint8}\n"
- "type sys._isys_538 {_esys_534 sys.string _esys_535 sys.int32}\n"
- "type sys._esys_045 (sys._esys_046 sys._osys_536 sys._isys_538)\n"
- "var !sys.indexstring sys._esys_045\n"
+ "type sys._esys_043 (sys._esys_044 sys._esys_045 sys._esys_046)\n"
+ "var !sys.printsp sys._esys_043\n"
"type sys._esys_048 {}\n"
- "type sys._osys_545 {_esys_543 sys.string}\n"
- "type sys._isys_547 {_esys_544 sys.int64}\n"
- "type sys._esys_047 (sys._esys_048 sys._osys_545 sys._isys_547)\n"
- "var !sys.intstring sys._esys_047\n"
+ "type sys._osys_510 {_esys_507 sys.string}\n"
+ "type sys._isys_512 {_esys_508 sys.string _esys_509 sys.string}\n"
+ "type sys._esys_047 (sys._esys_048 sys._osys_510 sys._isys_512)\n"
+ "var !sys.catstring sys._esys_047\n"
"type sys._esys_050 {}\n"
- "type sys._osys_554 {_esys_551 sys.string}\n"
- "type sys._esys_051 *sys.uint8\n"
- "type sys._isys_556 {_esys_552 sys._esys_051 _esys_553 sys.int32}\n"
- "type sys._esys_049 (sys._esys_050 sys._osys_554 sys._isys_556)\n"
- "var !sys.byteastring sys._esys_049\n"
- "type sys._esys_053 {}\n"
- "type sys._osys_563 {_esys_561 sys.string}\n"
- "type sys._esys_055 [] sys.uint8\n"
- "type sys._esys_054 *sys._esys_055\n"
- "type sys._isys_565 {_esys_562 sys._esys_054}\n"
- "type sys._esys_052 (sys._esys_053 sys._osys_563 sys._isys_565)\n"
- "var !sys.arraystring sys._esys_052\n"
- "type sys._esys_057 {}\n"
- "type sys._osys_569 {ret sys.any}\n"
- "type sys._esys_058 *sys.uint8\n"
+ "type sys._osys_520 {_esys_517 sys.int32}\n"
+ "type sys._isys_522 {_esys_518 sys.string _esys_519 sys.string}\n"
+ "type sys._esys_049 (sys._esys_050 sys._osys_520 sys._isys_522)\n"
+ "var !sys.cmpstring sys._esys_049\n"
+ "type sys._esys_052 {}\n"
+ "type sys._osys_531 {_esys_527 sys.string}\n"
+ "type sys._isys_533 {_esys_528 sys.string _esys_529 sys.int32 _esys_530 sys.int32}\n"
+ "type sys._esys_051 (sys._esys_052 sys._osys_531 sys._isys_533)\n"
+ "var !sys.slicestring sys._esys_051\n"
+ "type sys._esys_054 {}\n"
+ "type sys.uint8 2\n"
+ "type sys._osys_542 {_esys_539 sys.uint8}\n"
+ "type sys._isys_544 {_esys_540 sys.string _esys_541 sys.int32}\n"
+ "type sys._esys_053 (sys._esys_054 sys._osys_542 sys._isys_544)\n"
+ "var !sys.indexstring sys._esys_053\n"
+ "type sys._esys_056 {}\n"
+ "type sys._osys_551 {_esys_549 sys.string}\n"
+ "type sys._isys_553 {_esys_550 sys.int64}\n"
+ "type sys._esys_055 (sys._esys_056 sys._osys_551 sys._isys_553)\n"
+ "var !sys.intstring sys._esys_055\n"
+ "type sys._esys_058 {}\n"
+ "type sys._osys_560 {_esys_557 sys.string}\n"
"type sys._esys_059 *sys.uint8\n"
- "type sys._isys_571 {sigi sys._esys_058 sigt sys._esys_059 elem sys.any}\n"
- "type sys._esys_056 (sys._esys_057 sys._osys_569 sys._isys_571)\n"
- "var !sys.ifaceT2I sys._esys_056\n"
+ "type sys._isys_562 {_esys_558 sys._esys_059 _esys_559 sys.int32}\n"
+ "type sys._esys_057 (sys._esys_058 sys._osys_560 sys._isys_562)\n"
+ "var !sys.byteastring sys._esys_057\n"
"type sys._esys_061 {}\n"
- "type sys._osys_578 {ret sys.any}\n"
- "type sys._esys_062 *sys.uint8\n"
- "type sys._isys_580 {sigt sys._esys_062 iface sys.any}\n"
- "type sys._esys_060 (sys._esys_061 sys._osys_578 sys._isys_580)\n"
- "var !sys.ifaceI2T sys._esys_060\n"
- "type sys._esys_064 {}\n"
- "type sys._osys_586 {ret sys.any}\n"
- "type sys._esys_065 *sys.uint8\n"
- "type sys._isys_588 {sigi sys._esys_065 iface sys.any}\n"
- "type sys._esys_063 (sys._esys_064 sys._osys_586 sys._isys_588)\n"
- "var !sys.ifaceI2I sys._esys_063\n"
- "type sys._esys_067 {}\n"
- "type sys._osys_595 {_esys_594 sys.int32}\n"
- "type sys._esys_068 {}\n"
- "type sys._esys_066 (sys._esys_067 sys._osys_595 sys._esys_068)\n"
- "var !sys.argc sys._esys_066\n"
- "type sys._esys_070 {}\n"
- "type sys._osys_599 {_esys_598 sys.int32}\n"
- "type sys._esys_071 {}\n"
- "type sys._esys_069 (sys._esys_070 sys._osys_599 sys._esys_071)\n"
- "var !sys.envc sys._esys_069\n"
- "type sys._esys_073 {}\n"
- "type sys._osys_604 {_esys_602 sys.string}\n"
- "type sys._isys_606 {_esys_603 sys.int32}\n"
- "type sys._esys_072 (sys._esys_073 sys._osys_604 sys._isys_606)\n"
- "var !sys.argv sys._esys_072\n"
+ "type sys._osys_569 {_esys_567 sys.string}\n"
+ "type sys._esys_062 *sys._esys_063\n"
+ "type sys._isys_571 {_esys_568 sys._esys_062}\n"
+ "type sys._esys_060 (sys._esys_061 sys._osys_569 sys._isys_571)\n"
+ "var !sys.arraystring sys._esys_060\n"
+ "type sys._esys_065 {}\n"
+ "type sys._osys_575 {ret sys.any}\n"
+ "type sys._esys_066 *sys.uint8\n"
+ "type sys._esys_067 *sys.uint8\n"
+ "type sys._isys_577 {sigi sys._esys_066 sigt sys._esys_067 elem sys.any}\n"
+ "type sys._esys_064 (sys._esys_065 sys._osys_575 sys._isys_577)\n"
+ "var !sys.ifaceT2I sys._esys_064\n"
+ "type sys._esys_069 {}\n"
+ "type sys._osys_584 {ret sys.any}\n"
+ "type sys._esys_070 *sys.uint8\n"
+ "type sys._isys_586 {sigt sys._esys_070 iface sys.any}\n"
+ "type sys._esys_068 (sys._esys_069 sys._osys_584 sys._isys_586)\n"
+ "var !sys.ifaceI2T sys._esys_068\n"
+ "type sys._esys_072 {}\n"
+ "type sys._osys_592 {ret sys.any}\n"
+ "type sys._esys_073 *sys.uint8\n"
+ "type sys._isys_594 {sigi sys._esys_073 iface sys.any}\n"
+ "type sys._esys_071 (sys._esys_072 sys._osys_592 sys._isys_594)\n"
+ "var !sys.ifaceI2I sys._esys_071\n"
"type sys._esys_075 {}\n"
- "type sys._osys_612 {_esys_610 sys.string}\n"
- "type sys._isys_614 {_esys_611 sys.int32}\n"
- "type sys._esys_074 (sys._esys_075 sys._osys_612 sys._isys_614)\n"
- "var !sys.envv sys._esys_074\n"
- "type sys._esys_077 {}\n"
- "type sys._osys_621 {_esys_618 sys.float64 _esys_619 sys.int32}\n"
- "type sys._isys_623 {_esys_620 sys.float64}\n"
- "type sys._esys_076 (sys._esys_077 sys._osys_621 sys._isys_623)\n"
- "var !sys.frexp sys._esys_076\n"
+ "type sys._osys_601 {_esys_600 sys.int32}\n"
+ "type sys._esys_076 {}\n"
+ "type sys._esys_074 (sys._esys_075 sys._osys_601 sys._esys_076)\n"
+ "var !sys.argc sys._esys_074\n"
+ "type sys._esys_078 {}\n"
+ "type sys._osys_605 {_esys_604 sys.int32}\n"
"type sys._esys_079 {}\n"
- "type sys._osys_630 {_esys_627 sys.float64}\n"
- "type sys._isys_632 {_esys_628 sys.float64 _esys_629 sys.int32}\n"
- "type sys._esys_078 (sys._esys_079 sys._osys_630 sys._isys_632)\n"
- "var !sys.ldexp sys._esys_078\n"
+ "type sys._esys_077 (sys._esys_078 sys._osys_605 sys._esys_079)\n"
+ "var !sys.envc sys._esys_077\n"
"type sys._esys_081 {}\n"
- "type sys._osys_640 {_esys_637 sys.float64 _esys_638 sys.float64}\n"
- "type sys._isys_642 {_esys_639 sys.float64}\n"
- "type sys._esys_080 (sys._esys_081 sys._osys_640 sys._isys_642)\n"
- "var !sys.modf sys._esys_080\n"
+ "type sys._osys_610 {_esys_608 sys.string}\n"
+ "type sys._isys_612 {_esys_609 sys.int32}\n"
+ "type sys._esys_080 (sys._esys_081 sys._osys_610 sys._isys_612)\n"
+ "var !sys.argv sys._esys_080\n"
"type sys._esys_083 {}\n"
- "type sys._osys_649 {_esys_646 sys.bool}\n"
- "type sys._isys_651 {_esys_647 sys.float64 _esys_648 sys.int32}\n"
- "type sys._esys_082 (sys._esys_083 sys._osys_649 sys._isys_651)\n"
- "var !sys.isInf sys._esys_082\n"
+ "type sys._osys_618 {_esys_616 sys.string}\n"
+ "type sys._isys_620 {_esys_617 sys.int32}\n"
+ "type sys._esys_082 (sys._esys_083 sys._osys_618 sys._isys_620)\n"
+ "var !sys.envv sys._esys_082\n"
"type sys._esys_085 {}\n"
- "type sys._osys_658 {_esys_656 sys.bool}\n"
- "type sys._isys_660 {_esys_657 sys.float64}\n"
- "type sys._esys_084 (sys._esys_085 sys._osys_658 sys._isys_660)\n"
- "var !sys.isNaN sys._esys_084\n"
+ "type sys._osys_627 {_esys_624 sys.float64 _esys_625 sys.int32}\n"
+ "type sys._isys_629 {_esys_626 sys.float64}\n"
+ "type sys._esys_084 (sys._esys_085 sys._osys_627 sys._isys_629)\n"
+ "var !sys.frexp sys._esys_084\n"
"type sys._esys_087 {}\n"
- "type sys._osys_666 {_esys_664 sys.float64}\n"
- "type sys._isys_668 {_esys_665 sys.int32}\n"
- "type sys._esys_086 (sys._esys_087 sys._osys_666 sys._isys_668)\n"
- "var !sys.Inf sys._esys_086\n"
+ "type sys._osys_636 {_esys_633 sys.float64}\n"
+ "type sys._isys_638 {_esys_634 sys.float64 _esys_635 sys.int32}\n"
+ "type sys._esys_086 (sys._esys_087 sys._osys_636 sys._isys_638)\n"
+ "var !sys.ldexp sys._esys_086\n"
"type sys._esys_089 {}\n"
- "type sys._osys_673 {_esys_672 sys.float64}\n"
- "type sys._esys_090 {}\n"
- "type sys._esys_088 (sys._esys_089 sys._osys_673 sys._esys_090)\n"
- "var !sys.NaN sys._esys_088\n"
- "type sys._esys_092 {}\n"
- "type sys._esys_094 [sys.any] sys.any\n"
- "type sys._esys_093 *sys._esys_094\n"
- "type sys._osys_676 {hmap sys._esys_093}\n"
- "type sys._isys_678 {keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}\n"
- "type sys._esys_091 (sys._esys_092 sys._osys_676 sys._isys_678)\n"
- "var !sys.newmap sys._esys_091\n"
- "type sys._esys_096 {}\n"
- "type sys._osys_687 {val sys.any}\n"
- "type sys._esys_098 [sys.any] sys.any\n"
- "type sys._esys_097 *sys._esys_098\n"
- "type sys._isys_689 {hmap sys._esys_097 key sys.any}\n"
- "type sys._esys_095 (sys._esys_096 sys._osys_687 sys._isys_689)\n"
- "var !sys.mapaccess1 sys._esys_095\n"
+ "type sys._osys_646 {_esys_643 sys.float64 _esys_644 sys.float64}\n"
+ "type sys._isys_648 {_esys_645 sys.float64}\n"
+ "type sys._esys_088 (sys._esys_089 sys._osys_646 sys._isys_648)\n"
+ "var !sys.modf sys._esys_088\n"
+ "type sys._esys_091 {}\n"
+ "type sys._osys_655 {_esys_652 sys.bool}\n"
+ "type sys._isys_657 {_esys_653 sys.float64 _esys_654 sys.int32}\n"
+ "type sys._esys_090 (sys._esys_091 sys._osys_655 sys._isys_657)\n"
+ "var !sys.isInf sys._esys_090\n"
+ "type sys._esys_093 {}\n"
+ "type sys._osys_664 {_esys_662 sys.bool}\n"
+ "type sys._isys_666 {_esys_663 sys.float64}\n"
+ "type sys._esys_092 (sys._esys_093 sys._osys_664 sys._isys_666)\n"
+ "var !sys.isNaN sys._esys_092\n"
+ "type sys._esys_095 {}\n"
+ "type sys._osys_672 {_esys_670 sys.float64}\n"
+ "type sys._isys_674 {_esys_671 sys.int32}\n"
+ "type sys._esys_094 (sys._esys_095 sys._osys_672 sys._isys_674)\n"
+ "var !sys.Inf sys._esys_094\n"
+ "type sys._esys_097 {}\n"
+ "type sys._osys_679 {_esys_678 sys.float64}\n"
+ "type sys._esys_098 {}\n"
+ "type sys._esys_096 (sys._esys_097 sys._osys_679 sys._esys_098)\n"
+ "var !sys.NaN sys._esys_096\n"
"type sys._esys_100 {}\n"
- "type sys._osys_695 {val sys.any pres sys.bool}\n"
- "type sys._esys_102 [sys.any] sys.any\n"
"type sys._esys_101 *sys._esys_102\n"
- "type sys._isys_697 {hmap sys._esys_101 key sys.any}\n"
- "type sys._esys_099 (sys._esys_100 sys._osys_695 sys._isys_697)\n"
- "var !sys.mapaccess2 sys._esys_099\n"
+ "type sys._osys_682 {hmap sys._esys_101}\n"
+ "type sys._isys_684 {keysize sys.uint32 valsize sys.uint32 keyalg sys.uint32 valalg sys.uint32 hint sys.uint32}\n"
+ "type sys._esys_099 (sys._esys_100 sys._osys_682 sys._isys_684)\n"
+ "var !sys.newmap sys._esys_099\n"
"type sys._esys_104 {}\n"
- "type sys._esys_105 {}\n"
- "type sys._esys_107 [sys.any] sys.any\n"
- "type sys._esys_106 *sys._esys_107\n"
- "type sys._isys_704 {hmap sys._esys_106 key sys.any val sys.any}\n"
- "type sys._esys_103 (sys._esys_104 sys._esys_105 sys._isys_704)\n"
- "var !sys.mapassign1 sys._esys_103\n"
- "type sys._esys_109 {}\n"
- "type sys._esys_110 {}\n"
- "type sys._esys_112 [sys.any] sys.any\n"
- "type sys._esys_111 *sys._esys_112\n"
- "type sys._isys_710 {hmap sys._esys_111 key sys.any val sys.any pres sys.bool}\n"
- "type sys._esys_108 (sys._esys_109 sys._esys_110 sys._isys_710)\n"
- "var !sys.mapassign2 sys._esys_108\n"
- "type sys._esys_114 {}\n"
- "type sys._esys_116 1 sys.any\n"
- "type sys._esys_115 *sys._esys_116\n"
- "type sys._osys_717 {hchan sys._esys_115}\n"
- "type sys._isys_719 {elemsize sys.uint32 elemalg sys.uint32 hint sys.uint32}\n"
- "type sys._esys_113 (sys._esys_114 sys._osys_717 sys._isys_719)\n"
- "var !sys.newchan sys._esys_113\n"
+ "type sys._osys_693 {val sys.any}\n"
+ "type sys._esys_105 *sys._esys_106\n"
+ "type sys._isys_695 {hmap sys._esys_105 key sys.any}\n"
+ "type sys._esys_103 (sys._esys_104 sys._osys_693 sys._isys_695)\n"
+ "var !sys.mapaccess1 sys._esys_103\n"
+ "type sys._esys_108 {}\n"
+ "type sys._osys_701 {val sys.any pres sys.bool}\n"
+ "type sys._esys_109 *sys._esys_110\n"
+ "type sys._isys_703 {hmap sys._esys_109 key sys.any}\n"
+ "type sys._esys_107 (sys._esys_108 sys._osys_701 sys._isys_703)\n"
+ "var !sys.mapaccess2 sys._esys_107\n"
+ "type sys._esys_112 {}\n"
+ "type sys._esys_113 {}\n"
+ "type sys._esys_114 *sys._esys_115\n"
+ "type sys._isys_710 {hmap sys._esys_114 key sys.any val sys.any}\n"
+ "type sys._esys_111 (sys._esys_112 sys._esys_113 sys._isys_710)\n"
+ "var !sys.mapassign1 sys._esys_111\n"
+ "type sys._esys_117 {}\n"
"type sys._esys_118 {}\n"
- "type sys._osys_726 {elem sys.any}\n"
- "type sys._esys_120 1 sys.any\n"
"type sys._esys_119 *sys._esys_120\n"
- "type sys._isys_728 {hchan sys._esys_119}\n"
- "type sys._esys_117 (sys._esys_118 sys._osys_726 sys._isys_728)\n"
- "var !sys.chanrecv1 sys._esys_117\n"
+ "type sys._isys_716 {hmap sys._esys_119 key sys.any val sys.any pres sys.bool}\n"
+ "type sys._esys_116 (sys._esys_117 sys._esys_118 sys._isys_716)\n"
+ "var !sys.mapassign2 sys._esys_116\n"
"type sys._esys_122 {}\n"
- "type sys._osys_733 {elem sys.any pres sys.bool}\n"
- "type sys._esys_124 1 sys.any\n"
"type sys._esys_123 *sys._esys_124\n"
- "type sys._isys_735 {hchan sys._esys_123}\n"
- "type sys._esys_121 (sys._esys_122 sys._osys_733 sys._isys_735)\n"
- "var !sys.chanrecv2 sys._esys_121\n"
+ "type sys._osys_723 {hchan sys._esys_123}\n"
+ "type sys._isys_725 {elemsize sys.uint32 elemalg sys.uint32 hint sys.uint32}\n"
+ "type sys._esys_121 (sys._esys_122 sys._osys_723 sys._isys_725)\n"
+ "var !sys.newchan sys._esys_121\n"
"type sys._esys_126 {}\n"
- "type sys._osys_741 {pres sys.bool}\n"
- "type sys._esys_128 1 sys.any\n"
+ "type sys._osys_732 {elem sys.any}\n"
"type sys._esys_127 *sys._esys_128\n"
- "type sys._esys_129 *sys.any\n"
- "type sys._isys_743 {hchan sys._esys_127 elem sys._esys_129}\n"
- "type sys._esys_125 (sys._esys_126 sys._osys_741 sys._isys_743)\n"
- "var !sys.chanrecv3 sys._esys_125\n"
- "type sys._esys_131 {}\n"
- "type sys._esys_132 {}\n"
- "type sys._esys_134 1 sys.any\n"
- "type sys._esys_133 *sys._esys_134\n"
- "type sys._isys_749 {hchan sys._esys_133 elem sys.any}\n"
- "type sys._esys_130 (sys._esys_131 sys._esys_132 sys._isys_749)\n"
- "var !sys.chansend1 sys._esys_130\n"
- "type sys._esys_136 {}\n"
- "type sys._osys_754 {pres sys.bool}\n"
- "type sys._esys_138 1 sys.any\n"
- "type sys._esys_137 *sys._esys_138\n"
- "type sys._isys_756 {hchan sys._esys_137 elem sys.any}\n"
- "type sys._esys_135 (sys._esys_136 sys._osys_754 sys._isys_756)\n"
- "var !sys.chansend2 sys._esys_135\n"
+ "type sys._isys_734 {hchan sys._esys_127}\n"
+ "type sys._esys_125 (sys._esys_126 sys._osys_732 sys._isys_734)\n"
+ "var !sys.chanrecv1 sys._esys_125\n"
+ "type sys._esys_130 {}\n"
+ "type sys._osys_739 {elem sys.any pres sys.bool}\n"
+ "type sys._esys_131 *sys._esys_132\n"
+ "type sys._isys_741 {hchan sys._esys_131}\n"
+ "type sys._esys_129 (sys._esys_130 sys._osys_739 sys._isys_741)\n"
+ "var !sys.chanrecv2 sys._esys_129\n"
+ "type sys._esys_134 {}\n"
+ "type sys._osys_747 {pres sys.bool}\n"
+ "type sys._esys_135 *sys._esys_136\n"
+ "type sys._esys_137 *sys.any\n"
+ "type sys._isys_749 {hchan sys._esys_135 elem sys._esys_137}\n"
+ "type sys._esys_133 (sys._esys_134 sys._osys_747 sys._isys_749)\n"
+ "var !sys.chanrecv3 sys._esys_133\n"
+ "type sys._esys_139 {}\n"
"type sys._esys_140 {}\n"
- "type sys._esys_141 *sys.uint8\n"
- "type sys._osys_762 {sel sys._esys_141}\n"
- "type sys._isys_764 {size sys.uint32}\n"
- "type sys._esys_139 (sys._esys_140 sys._osys_762 sys._isys_764)\n"
- "var !sys.newselect sys._esys_139\n"
- "type sys._esys_143 {}\n"
- "type sys._osys_769 {selected sys.bool}\n"
- "type sys._esys_144 *sys.uint8\n"
- "type sys._esys_146 1 sys.any\n"
+ "type sys._esys_141 *sys._esys_142\n"
+ "type sys._isys_755 {hchan sys._esys_141 elem sys.any}\n"
+ "type sys._esys_138 (sys._esys_139 sys._esys_140 sys._isys_755)\n"
+ "var !sys.chansend1 sys._esys_138\n"
+ "type sys._esys_144 {}\n"
+ "type sys._osys_760 {pres sys.bool}\n"
"type sys._esys_145 *sys._esys_146\n"
- "type sys._isys_771 {sel sys._esys_144 hchan sys._esys_145 elem sys.any}\n"
- "type sys._esys_142 (sys._esys_143 sys._osys_769 sys._isys_771)\n"
- "var !sys.selectsend sys._esys_142\n"
+ "type sys._isys_762 {hchan sys._esys_145 elem sys.any}\n"
+ "type sys._esys_143 (sys._esys_144 sys._osys_760 sys._isys_762)\n"
+ "var !sys.chansend2 sys._esys_143\n"
"type sys._esys_148 {}\n"
- "type sys._osys_778 {selected sys.bool}\n"
"type sys._esys_149 *sys.uint8\n"
- "type sys._esys_151 1 sys.any\n"
- "type sys._esys_150 *sys._esys_151\n"
- "type sys._esys_152 *sys.any\n"
- "type sys._isys_780 {sel sys._esys_149 hchan sys._esys_150 elem sys._esys_152}\n"
- "type sys._esys_147 (sys._esys_148 sys._osys_778 sys._isys_780)\n"
- "var !sys.selectrecv sys._esys_147\n"
- "type sys._esys_154 {}\n"
- "type sys._esys_155 {}\n"
- "type sys._esys_156 *sys.uint8\n"
- "type sys._isys_787 {sel sys._esys_156}\n"
- "type sys._esys_153 (sys._esys_154 sys._esys_155 sys._isys_787)\n"
- "var !sys.selectgo sys._esys_153\n"
- "type sys._esys_158 {}\n"
- "type sys._esys_160 [] sys.any\n"
- "type sys._esys_159 *sys._esys_160\n"
- "type sys._osys_791 {ary sys._esys_159}\n"
- "type sys._isys_793 {nel sys.uint32 cap sys.uint32 width sys.uint32}\n"
- "type sys._esys_157 (sys._esys_158 sys._osys_791 sys._isys_793)\n"
- "var !sys.newarray sys._esys_157\n"
+ "type sys._osys_768 {sel sys._esys_149}\n"
+ "type sys._isys_770 {size sys.uint32}\n"
+ "type sys._esys_147 (sys._esys_148 sys._osys_768 sys._isys_770)\n"
+ "var !sys.newselect sys._esys_147\n"
+ "type sys._esys_151 {}\n"
+ "type sys._osys_775 {selected sys.bool}\n"
+ "type sys._esys_152 *sys.uint8\n"
+ "type sys._esys_153 *sys._esys_154\n"
+ "type sys._isys_777 {sel sys._esys_152 hchan sys._esys_153 elem sys.any}\n"
+ "type sys._esys_150 (sys._esys_151 sys._osys_775 sys._isys_777)\n"
+ "var !sys.selectsend sys._esys_150\n"
+ "type sys._esys_156 {}\n"
+ "type sys._osys_784 {selected sys.bool}\n"
+ "type sys._esys_157 *sys.uint8\n"
+ "type sys._esys_158 *sys._esys_159\n"
+ "type sys._esys_160 *sys.any\n"
+ "type sys._isys_786 {sel sys._esys_157 hchan sys._esys_158 elem sys._esys_160}\n"
+ "type sys._esys_155 (sys._esys_156 sys._osys_784 sys._isys_786)\n"
+ "var !sys.selectrecv sys._esys_155\n"
"type sys._esys_162 {}\n"
- "type sys._esys_164 [] sys.any\n"
- "type sys._esys_163 *sys._esys_164\n"
- "type sys._osys_800 {ary sys._esys_163}\n"
- "type sys._esys_166 [] sys.any\n"
- "type sys._esys_165 *sys._esys_166\n"
- "type sys._isys_802 {old sys._esys_165 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
- "type sys._esys_161 (sys._esys_162 sys._osys_800 sys._isys_802)\n"
- "var !sys.arraysliced sys._esys_161\n"
- "type sys._esys_168 {}\n"
- "type sys._esys_170 [] sys.any\n"
- "type sys._esys_169 *sys._esys_170\n"
- "type sys._osys_810 {ary sys._esys_169}\n"
- "type sys._esys_171 *sys.any\n"
- "type sys._isys_812 {old sys._esys_171 nel sys.uint32 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
- "type sys._esys_167 (sys._esys_168 sys._osys_810 sys._isys_812)\n"
- "var !sys.arrayslices sys._esys_167\n"
- "type sys._esys_173 {}\n"
- "type sys._esys_175 [] sys.any\n"
- "type sys._esys_174 *sys._esys_175\n"
- "type sys._osys_821 {ary sys._esys_174}\n"
- "type sys._esys_176 *sys.any\n"
- "type sys._isys_823 {old sys._esys_176 nel sys.uint32}\n"
- "type sys._esys_172 (sys._esys_173 sys._osys_821 sys._isys_823)\n"
- "var !sys.arrays2d sys._esys_172\n"
- "type sys._esys_178 {}\n"
- "type sys._esys_179 {}\n"
- "type sys._esys_180 {}\n"
- "type sys._esys_177 (sys._esys_178 sys._esys_179 sys._esys_180)\n"
- "var !sys.gosched sys._esys_177\n"
- "type sys._esys_182 {}\n"
- "type sys._esys_183 {}\n"
- "type sys._esys_184 {}\n"
- "type sys._esys_181 (sys._esys_182 sys._esys_183 sys._esys_184)\n"
- "var !sys.goexit sys._esys_181\n"
+ "type sys._esys_163 {}\n"
+ "type sys._esys_164 *sys.uint8\n"
+ "type sys._isys_793 {sel sys._esys_164}\n"
+ "type sys._esys_161 (sys._esys_162 sys._esys_163 sys._isys_793)\n"
+ "var !sys.selectgo sys._esys_161\n"
+ "type sys._esys_166 {}\n"
+ "type sys._esys_167 *sys._esys_168\n"
+ "type sys._osys_797 {ary sys._esys_167}\n"
+ "type sys._isys_799 {nel sys.uint32 cap sys.uint32 width sys.uint32}\n"
+ "type sys._esys_165 (sys._esys_166 sys._osys_797 sys._isys_799)\n"
+ "var !sys.newarray sys._esys_165\n"
+ "type sys._esys_170 {}\n"
+ "type sys._esys_171 *sys._esys_172\n"
+ "type sys._osys_806 {ary sys._esys_171}\n"
+ "type sys._esys_173 *sys._esys_174\n"
+ "type sys._isys_808 {old sys._esys_173 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
+ "type sys._esys_169 (sys._esys_170 sys._osys_806 sys._isys_808)\n"
+ "var !sys.arraysliced sys._esys_169\n"
+ "type sys._esys_176 {}\n"
+ "type sys._esys_177 *sys._esys_178\n"
+ "type sys._osys_816 {ary sys._esys_177}\n"
+ "type sys._esys_179 *sys.any\n"
+ "type sys._isys_818 {old sys._esys_179 nel sys.uint32 lb sys.uint32 hb sys.uint32 width sys.uint32}\n"
+ "type sys._esys_175 (sys._esys_176 sys._osys_816 sys._isys_818)\n"
+ "var !sys.arrayslices sys._esys_175\n"
+ "type sys._esys_181 {}\n"
+ "type sys._esys_182 *sys._esys_183\n"
+ "type sys._osys_827 {ary sys._esys_182}\n"
+ "type sys._esys_184 *sys.any\n"
+ "type sys._isys_829 {old sys._esys_184 nel sys.uint32}\n"
+ "type sys._esys_180 (sys._esys_181 sys._osys_827 sys._isys_829)\n"
+ "var !sys.arrays2d sys._esys_180\n"
"type sys._esys_186 {}\n"
- "type sys._osys_834 {_esys_831 sys.string _esys_832 sys.bool}\n"
- "type sys._isys_836 {_esys_833 sys.string}\n"
- "type sys._esys_185 (sys._esys_186 sys._osys_834 sys._isys_836)\n"
- "var !sys.readfile sys._esys_185\n"
+ "type sys._esys_187 {}\n"
"type sys._esys_188 {}\n"
- "type sys._osys_843 {_esys_840 sys.bool}\n"
- "type sys._isys_845 {_esys_841 sys.string _esys_842 sys.string}\n"
- "type sys._esys_187 (sys._esys_188 sys._osys_843 sys._isys_845)\n"
- "var !sys.writefile sys._esys_187\n"
+ "type sys._esys_185 (sys._esys_186 sys._esys_187 sys._esys_188)\n"
+ "var !sys.gosched sys._esys_185\n"
"type sys._esys_190 {}\n"
- "type sys._osys_855 {_esys_850 sys.int32 _esys_851 sys.int32}\n"
- "type sys._esys_191 *sys.uint8\n"
- "type sys._isys_857 {_esys_852 sys._esys_191 _esys_853 sys.int32 _esys_854 sys.int32}\n"
- "type sys._esys_189 (sys._esys_190 sys._osys_855 sys._isys_857)\n"
- "var !sys.bytestorune sys._esys_189\n"
- "type sys._esys_193 {}\n"
- "type sys._osys_868 {_esys_863 sys.int32 _esys_864 sys.int32}\n"
- "type sys._isys_870 {_esys_865 sys.string _esys_866 sys.int32 _esys_867 sys.int32}\n"
- "type sys._esys_192 (sys._esys_193 sys._osys_868 sys._isys_870)\n"
- "var !sys.stringtorune sys._esys_192\n"
- "type sys._esys_195 {}\n"
+ "type sys._esys_191 {}\n"
+ "type sys._esys_192 {}\n"
+ "type sys._esys_189 (sys._esys_190 sys._esys_191 sys._esys_192)\n"
+ "var !sys.goexit sys._esys_189\n"
+ "type sys._esys_194 {}\n"
+ "type sys._osys_840 {_esys_837 sys.string _esys_838 sys.bool}\n"
+ "type sys._isys_842 {_esys_839 sys.string}\n"
+ "type sys._esys_193 (sys._esys_194 sys._osys_840 sys._isys_842)\n"
+ "var !sys.readfile sys._esys_193\n"
"type sys._esys_196 {}\n"
- "type sys._isys_877 {_esys_876 sys.int32}\n"
- "type sys._esys_194 (sys._esys_195 sys._esys_196 sys._isys_877)\n"
- "var !sys.exit sys._esys_194\n"
+ "type sys._osys_849 {_esys_846 sys.bool}\n"
+ "type sys._isys_851 {_esys_847 sys.string _esys_848 sys.string}\n"
+ "type sys._esys_195 (sys._esys_196 sys._osys_849 sys._isys_851)\n"
+ "var !sys.writefile sys._esys_195\n"
"type sys._esys_198 {}\n"
- "type sys._esys_199 {}\n"
- "type sys._esys_200 {}\n"
- "type sys._esys_197 (sys._esys_198 sys._esys_199 sys._esys_200)\n"
+ "type sys._osys_861 {_esys_856 sys.int32 _esys_857 sys.int32}\n"
+ "type sys._esys_199 *sys.uint8\n"
+ "type sys._isys_863 {_esys_858 sys._esys_199 _esys_859 sys.int32 _esys_860 sys.int32}\n"
+ "type sys._esys_197 (sys._esys_198 sys._osys_861 sys._isys_863)\n"
+ "var !sys.bytestorune sys._esys_197\n"
+ "type sys._esys_201 {}\n"
+ "type sys._osys_874 {_esys_869 sys.int32 _esys_870 sys.int32}\n"
+ "type sys._isys_876 {_esys_871 sys.string _esys_872 sys.int32 _esys_873 sys.int32}\n"
+ "type sys._esys_200 (sys._esys_201 sys._osys_874 sys._isys_876)\n"
+ "var !sys.stringtorune sys._esys_200\n"
+ "type sys._esys_203 {}\n"
+ "type sys._esys_204 {}\n"
+ "type sys._isys_883 {_esys_882 sys.int32}\n"
+ "type sys._esys_202 (sys._esys_203 sys._esys_204 sys._isys_883)\n"
+ "var !sys.exit sys._esys_202\n"
+ "type sys._esys_206 {}\n"
+ "type sys._esys_207 {}\n"
+ "type sys._esys_208 {}\n"
+ "type sys._esys_205 (sys._esys_206 sys._esys_207 sys._esys_208)\n"
+ "type sys._esys_031 25\n"
+ "type sys._esys_063 [] sys.uint8\n"
+ "type sys._esys_102 [sys.any] sys.any\n"
+ "type sys._esys_106 [sys.any] sys.any\n"
+ "type sys._esys_110 [sys.any] sys.any\n"
+ "type sys._esys_115 [sys.any] sys.any\n"
+ "type sys._esys_120 [sys.any] sys.any\n"
+ "type sys._esys_124 1 sys.any\n"
+ "type sys._esys_128 1 sys.any\n"
+ "type sys._esys_132 1 sys.any\n"
+ "type sys._esys_136 1 sys.any\n"
+ "type sys._esys_142 1 sys.any\n"
+ "type sys._esys_146 1 sys.any\n"
+ "type sys._esys_154 1 sys.any\n"
+ "type sys._esys_159 1 sys.any\n"
+ "type sys._esys_168 [] sys.any\n"
+ "type sys._esys_172 [] sys.any\n"
+ "type sys._esys_174 [] sys.any\n"
+ "type sys._esys_178 [] sys.any\n"
+ "type sys._esys_183 [] sys.any\n"
"))\n"
;
diff --git a/src/cmd/gc/walk.c b/src/cmd/gc/walk.c
index 1cd3c20..cc06abc 100644
--- a/src/cmd/gc/walk.c
+++ b/src/cmd/gc/walk.c
@@ -124,7 +124,9 @@
case OSEND:
case ORECV:
case OPRINT:
+ case OPRINTN:
case OPANIC:
+ case OPANICN:
case OFOR:
case OIF:
case OSWITCH:
@@ -203,14 +205,28 @@
if(top != Etop)
goto nottop;
walktype(n->left, Erv);
- indir(n, prcompat(n->left));
+ indir(n, prcompat(n->left, 0));
+ goto ret;
+
+ case OPRINTN:
+ if(top != Etop)
+ goto nottop;
+ walktype(n->left, Erv);
+ indir(n, prcompat(n->left, 1));
goto ret;
case OPANIC:
if(top != Etop)
goto nottop;
walktype(n->left, Erv);
- indir(n, list(prcompat(n->left), nodpanic(n->lineno)));
+ indir(n, list(prcompat(n->left, 0), nodpanic(n->lineno)));
+ goto ret;
+
+ case OPANICN:
+ if(top != Etop)
+ goto nottop;
+ walktype(n->left, Erv);
+ indir(n, list(prcompat(n->left, 1), nodpanic(n->lineno)));
goto ret;
case OLITERAL:
@@ -1598,23 +1614,33 @@
}
Node*
-prcompat(Node *n)
+prcompat(Node *n, int fmt)
{
Node *l, *r;
Node *on;
Type *t;
Iter save;
- int w;
+ int w, notfirst;
r = N;
l = listfirst(&save, &n);
+ notfirst = 0;
loop:
if(l == N) {
+ if(fmt) {
+ on = syslook("printnl", 0);
+ r = list(r, nod(OCALL, on, N));
+ }
walktype(r, Etop);
return r;
}
+ if(notfirst) {
+ on = syslook("printsp", 0);
+ r = list(r, nod(OCALL, on, N));
+ }
+
w = whatis(l);
switch(w) {
default:
@@ -1663,12 +1689,10 @@
l->type = t;
}
- if(r == N)
- r = nod(OCALL, on, l);
- else
- r = list(r, nod(OCALL, on, l));
+ r = list(r, nod(OCALL, on, l));
out:
+ notfirst = fmt;
l = listnext(&save);
goto loop;
}
diff --git a/src/runtime/print.c b/src/runtime/print.c
index 2bc5875..f50d308 100644
--- a/src/runtime/print.c
+++ b/src/runtime/print.c
@@ -166,3 +166,15 @@
if(v != nil)
sys·write(1, v->str, v->len);
}
+
+void
+sys·printsp(void)
+{
+ sys·write(1, " ", 1);
+}
+
+void
+sys·printnl(void)
+{
+ sys·write(1, "\n", 1);
+}