[gogc] 2 new revisions pushed by bytbox on 2010-08-17 22:48 GMT

0 views
Skip to first unread message

go...@googlecode.com

unread,
Aug 17, 2010, 9:53:41 PM8/17/10
to go...@googlegroups.com
2 new revisions:

Revision: cfb256e7c1
Author: Michael Lippautz <michael....@gmail.com>
Date: Wed Jun 16 10:19:14 2010
Log: gogo: Various changes that effect symbol table generation...
http://code.google.com/p/gogc/source/detail?r=cfb256e7c1

Revision: 896555c749
Author: Michael Lippautz <michael....@gmail.com>
Date: Wed Jun 16 11:37:00 2010
Log: linker: type handling in symbol table should work now
http://code.google.com/p/gogc/source/detail?r=896555c749

==============================================================================
Revision: cfb256e7c1
Author: Michael Lippautz <michael....@gmail.com>
Date: Wed Jun 16 10:19:14 2010
Log: gogo: Various changes that effect symbol table generation

* __UNLINKED_CODE is added if atleast 1 fwd decl. has been made (func,
type)
* Fwd declared types are added to the symbol table
* Remove unused (and wrong) check for fwd declared items (check correct,
but semantic did not match)
http://code.google.com/p/gogc/source/detail?r=cfb256e7c1

Modified:
/src/_gogo_.sog
/src/asm_out.go
/src/gogo.go
/src/libgogo/symbol.go
/src/symtable.go

=======================================
--- /src/_gogo_.sog Tue Jun 15 14:08:11 2010
+++ /src/_gogo_.sog Wed Jun 16 10:19:14 2010
@@ -9,16 +9,17 @@
// This code is automatically generated. DO NOT EDIT IT!
//

+__UNLINKED_CODE
//Symbol table:
-//TYPE,·uint64,8,8
-//TYPE,·byte,1,8
-//TYPE,·string,16,16
-//TYPE,·bool,8,8
-//TYPE,libgogo·List,32,32
-//TYPE,libgogo·StringList,32,32
-//TYPE,libgogo·TypeDesc,80,80
-//TYPE,libgogo·ObjectDesc,64,64
-//TYPE,libgogo·Item,72,72
+//TYPE,0,·uint64,8,8
+//TYPE,0,·byte,1,8
+//TYPE,0,·string,16,16
+//TYPE,0,·bool,8,8
+//TYPE,0,libgogo·List,32,32
+//TYPE,0,libgogo·StringList,32,32
+//TYPE,0,libgogo·TypeDesc,80,80
+//TYPE,0,libgogo·ObjectDesc,64,64
+//TYPE,0,libgogo·Item,72,72
//FUNC,0,main·init,
//FUNC,0,libgogo·ToIntFromByte,b:byte,return value:uint64
//FUNC,0,libgogo·ToByteFromInt,i:uint64,return value:byte
@@ -82,7 +83,6 @@

//FUNC,0,libgogo·GetType,name:string,packagename:string,list:TypeDesc,includeforward:uint64,return
value:TypeDesc
//FUNC,0,libgogo·FindPackageName,packagename:string,list:ObjectDesc,return
value:uint64

//FUNC,0,libgogo·FindTypePackageName,packagename:string,list:TypeDesc,return
value:uint64
-//FUNC,0,libgogo·GetFirstForwardDeclType,list:TypeDesc,return
value:TypeDesc
//FUNC,0,libgogo·GetParameterAt,index:uint64,list:TypeDesc,return
value:ObjectDesc

//FUNC,0,libgogo·NewObject,name:string,packagename:string,class:uint64,return
value:ObjectDesc

//FUNC,0,libgogo·NewType,name:string,packagename:string,forwarddecl:uint64,len:uint64,basetype:TypeDesc,return
value:TypeDesc
@@ -313,7 +313,7 @@
//--- String buffer start ('') at libgogo/symbol.go:120:32
DATA data+496(SB)/1, $0
//--- String buffer end at libgogo/symbol.go:120:32
-//--- String buffer start ('Object ') at libgogo/symbol.go:415:30
+//--- String buffer start ('Object ') at libgogo/symbol.go:402:30
DATA data+520(SB)/1, $79
DATA data+521(SB)/1, $98
DATA data+522(SB)/1, $106
@@ -322,8 +322,8 @@
DATA data+525(SB)/1, $116
DATA data+526(SB)/1, $32
DATA data+527(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:415:30
-//--- String buffer start (' (type: ') at libgogo/symbol.go:422:31
+//--- String buffer end at libgogo/symbol.go:402:30
+//--- String buffer start (' (type: ') at libgogo/symbol.go:409:31
DATA data+544(SB)/1, $32
DATA data+545(SB)/1, $40
DATA data+546(SB)/1, $116
@@ -333,8 +333,8 @@
DATA data+550(SB)/1, $58
DATA data+551(SB)/1, $32
DATA data+552(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:422:31
-//--- String buffer start ('pointer to ') at libgogo/symbol.go:424:38
+//--- String buffer end at libgogo/symbol.go:409:31
+//--- String buffer start ('pointer to ') at libgogo/symbol.go:411:38
DATA data+576(SB)/1, $112
DATA data+577(SB)/1, $111
DATA data+578(SB)/1, $105
@@ -347,8 +347,8 @@
DATA data+585(SB)/1, $111
DATA data+586(SB)/1, $32
DATA data+587(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:424:38
-//--- String buffer start ('array of ') at libgogo/symbol.go:428:40
+//--- String buffer end at libgogo/symbol.go:411:38
+//--- String buffer start ('array of ') at libgogo/symbol.go:415:40
DATA data+608(SB)/1, $97
DATA data+609(SB)/1, $114
DATA data+610(SB)/1, $114
@@ -359,8 +359,8 @@
DATA data+615(SB)/1, $102
DATA data+616(SB)/1, $32
DATA data+617(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:428:40
-//--- String buffer start (' of length ') at libgogo/symbol.go:430:42
+//--- String buffer end at libgogo/symbol.go:415:40
+//--- String buffer start (' of length ') at libgogo/symbol.go:417:42
DATA data+640(SB)/1, $32
DATA data+641(SB)/1, $111
DATA data+642(SB)/1, $102
@@ -373,8 +373,8 @@
DATA data+649(SB)/1, $104
DATA data+650(SB)/1, $32
DATA data+651(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:430:42
-//--- String buffer start (', internally named ') at
libgogo/symbol.go:432:50
+//--- String buffer end at libgogo/symbol.go:417:42
+//--- String buffer start (', internally named ') at
libgogo/symbol.go:419:50
DATA data+672(SB)/1, $44
DATA data+673(SB)/1, $32
DATA data+674(SB)/1, $105
@@ -395,8 +395,8 @@
DATA data+689(SB)/1, $100
DATA data+690(SB)/1, $32
DATA data+691(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:432:50
-//--- String buffer start ('<unknown>') at libgogo/symbol.go:441:36
+//--- String buffer end at libgogo/symbol.go:419:50
+//--- String buffer start ('<unknown>') at libgogo/symbol.go:428:36
DATA data+712(SB)/1, $60
DATA data+713(SB)/1, $117
DATA data+714(SB)/1, $110
@@ -407,8 +407,8 @@
DATA data+719(SB)/1, $110
DATA data+720(SB)/1, $62
DATA data+721(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:441:36
-//--- String buffer start (', size: ') at libgogo/symbol.go:443:31
+//--- String buffer end at libgogo/symbol.go:428:36
+//--- String buffer start (', size: ') at libgogo/symbol.go:430:31
DATA data+744(SB)/1, $44
DATA data+745(SB)/1, $32
DATA data+746(SB)/1, $115
@@ -418,8 +418,8 @@
DATA data+750(SB)/1, $58
DATA data+751(SB)/1, $32
DATA data+752(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:443:31
-//--- String buffer start (', offset: ') at libgogo/symbol.go:446:33
+//--- String buffer end at libgogo/symbol.go:430:31
+//--- String buffer start (', offset: ') at libgogo/symbol.go:433:33
DATA data+776(SB)/1, $44
DATA data+777(SB)/1, $32
DATA data+778(SB)/1, $111
@@ -431,21 +431,21 @@
DATA data+784(SB)/1, $58
DATA data+785(SB)/1, $32
DATA data+786(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:446:33
-//--- String buffer start (')\n') at libgogo/symbol.go:449:26
+//--- String buffer end at libgogo/symbol.go:433:33
+//--- String buffer start (')\n') at libgogo/symbol.go:436:26
DATA data+808(SB)/1, $41
DATA data+809(SB)/1, $10
DATA data+810(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:449:26
-//--- String buffer start ('Type ') at libgogo/symbol.go:462:28
+//--- String buffer end at libgogo/symbol.go:436:26
+//--- String buffer start ('Type ') at libgogo/symbol.go:449:28
DATA data+832(SB)/1, $84
DATA data+833(SB)/1, $121
DATA data+834(SB)/1, $112
DATA data+835(SB)/1, $101
DATA data+836(SB)/1, $32
DATA data+837(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:462:28
-//--- String buffer start (' (size: ') at libgogo/symbol.go:469:31
+//--- String buffer end at libgogo/symbol.go:449:28
+//--- String buffer start (' (size: ') at libgogo/symbol.go:456:31
DATA data+856(SB)/1, $32
DATA data+857(SB)/1, $40
DATA data+858(SB)/1, $115
@@ -455,18 +455,18 @@
DATA data+862(SB)/1, $58
DATA data+863(SB)/1, $32
DATA data+864(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:469:31
-//--- String buffer start (')\n') at libgogo/symbol.go:472:26
+//--- String buffer end at libgogo/symbol.go:456:31
+//--- String buffer start (')\n') at libgogo/symbol.go:459:26
DATA data+888(SB)/1, $41
DATA data+889(SB)/1, $10
DATA data+890(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:472:26
-//--- String buffer start (' ') at libgogo/symbol.go:474:29
+//--- String buffer end at libgogo/symbol.go:459:26
+//--- String buffer start (' ') at libgogo/symbol.go:461:29
DATA data+912(SB)/1, $32
DATA data+913(SB)/1, $32
DATA data+914(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:474:29
-//--- String buffer start (' (type: ') at libgogo/symbol.go:476:35
+//--- String buffer end at libgogo/symbol.go:461:29
+//--- String buffer start (' (type: ') at libgogo/symbol.go:463:35
DATA data+936(SB)/1, $32
DATA data+937(SB)/1, $40
DATA data+938(SB)/1, $116
@@ -476,8 +476,8 @@
DATA data+942(SB)/1, $58
DATA data+943(SB)/1, $32
DATA data+944(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:476:35
-//--- String buffer start ('pointer to ') at libgogo/symbol.go:478:42
+//--- String buffer end at libgogo/symbol.go:463:35
+//--- String buffer start ('pointer to ') at libgogo/symbol.go:465:42
DATA data+968(SB)/1, $112
DATA data+969(SB)/1, $111
DATA data+970(SB)/1, $105
@@ -490,8 +490,8 @@
DATA data+977(SB)/1, $111
DATA data+978(SB)/1, $32
DATA data+979(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:478:42
-//--- String buffer start ('array of ') at libgogo/symbol.go:482:44
+//--- String buffer end at libgogo/symbol.go:465:42
+//--- String buffer start ('array of ') at libgogo/symbol.go:469:44
DATA data+1000(SB)/1, $97
DATA data+1001(SB)/1, $114
DATA data+1002(SB)/1, $114
@@ -502,8 +502,8 @@
DATA data+1007(SB)/1, $102
DATA data+1008(SB)/1, $32
DATA data+1009(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:482:44
-//--- String buffer start (' of length ') at libgogo/symbol.go:484:46
+//--- String buffer end at libgogo/symbol.go:469:44
+//--- String buffer start (' of length ') at libgogo/symbol.go:471:46
DATA data+1032(SB)/1, $32
DATA data+1033(SB)/1, $111
DATA data+1034(SB)/1, $102
@@ -516,8 +516,8 @@
DATA data+1041(SB)/1, $104
DATA data+1042(SB)/1, $32
DATA data+1043(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:484:46
-//--- String buffer start (', internally named ') at
libgogo/symbol.go:486:54
+//--- String buffer end at libgogo/symbol.go:471:46
+//--- String buffer start (', internally named ') at
libgogo/symbol.go:473:54
DATA data+1064(SB)/1, $44
DATA data+1065(SB)/1, $32
DATA data+1066(SB)/1, $105
@@ -538,8 +538,8 @@
DATA data+1081(SB)/1, $100
DATA data+1082(SB)/1, $32
DATA data+1083(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:486:54
-//--- String buffer start ('<unknown>') at libgogo/symbol.go:495:40
+//--- String buffer end at libgogo/symbol.go:473:54
+//--- String buffer start ('<unknown>') at libgogo/symbol.go:482:40
DATA data+1104(SB)/1, $60
DATA data+1105(SB)/1, $117
DATA data+1106(SB)/1, $110
@@ -550,8 +550,8 @@
DATA data+1111(SB)/1, $110
DATA data+1112(SB)/1, $62
DATA data+1113(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:495:40
-//--- String buffer start (', size: ') at libgogo/symbol.go:497:35
+//--- String buffer end at libgogo/symbol.go:482:40
+//--- String buffer start (', size: ') at libgogo/symbol.go:484:35
DATA data+1136(SB)/1, $44
DATA data+1137(SB)/1, $32
DATA data+1138(SB)/1, $115
@@ -561,8 +561,8 @@
DATA data+1142(SB)/1, $58
DATA data+1143(SB)/1, $32
DATA data+1144(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:497:35
-//--- String buffer start (', offset: ') at libgogo/symbol.go:500:37
+//--- String buffer end at libgogo/symbol.go:484:35
+//--- String buffer start (', offset: ') at libgogo/symbol.go:487:37
DATA data+1168(SB)/1, $44
DATA data+1169(SB)/1, $32
DATA data+1170(SB)/1, $111
@@ -574,13 +574,13 @@
DATA data+1176(SB)/1, $58
DATA data+1177(SB)/1, $32
DATA data+1178(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:500:37
-//--- String buffer start (')\n') at libgogo/symbol.go:503:30
+//--- String buffer end at libgogo/symbol.go:487:37
+//--- String buffer start (')\n') at libgogo/symbol.go:490:30
DATA data+1200(SB)/1, $41
DATA data+1201(SB)/1, $10
DATA data+1202(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:503:30
-//--- String buffer start ('Function ') at libgogo/symbol.go:517:32
+//--- String buffer end at libgogo/symbol.go:490:30
+//--- String buffer start ('Function ') at libgogo/symbol.go:504:32
DATA data+1224(SB)/1, $70
DATA data+1225(SB)/1, $117
DATA data+1226(SB)/1, $110
@@ -591,8 +591,8 @@
DATA data+1231(SB)/1, $110
DATA data+1232(SB)/1, $32
DATA data+1233(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:517:32
-//--- String buffer start (' (number of parameters: ') at
libgogo/symbol.go:521:47
+//--- String buffer end at libgogo/symbol.go:504:32
+//--- String buffer start (' (number of parameters: ') at
libgogo/symbol.go:508:47
DATA data+1256(SB)/1, $32
DATA data+1257(SB)/1, $40
DATA data+1258(SB)/1, $110
@@ -618,18 +618,18 @@
DATA data+1278(SB)/1, $58
DATA data+1279(SB)/1, $32
DATA data+1280(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:521:47
-//--- String buffer start (')\n') at libgogo/symbol.go:523:26
+//--- String buffer end at libgogo/symbol.go:508:47
+//--- String buffer start (')\n') at libgogo/symbol.go:510:26
DATA data+1304(SB)/1, $41
DATA data+1305(SB)/1, $10
DATA data+1306(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:523:26
-//--- String buffer start (' ') at libgogo/symbol.go:525:29
+//--- String buffer end at libgogo/symbol.go:510:26
+//--- String buffer start (' ') at libgogo/symbol.go:512:29
DATA data+1328(SB)/1, $32
DATA data+1329(SB)/1, $32
DATA data+1330(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:525:29
-//--- String buffer start (' (type: ') at libgogo/symbol.go:527:35
+//--- String buffer end at libgogo/symbol.go:512:29
+//--- String buffer start (' (type: ') at libgogo/symbol.go:514:35
DATA data+1352(SB)/1, $32
DATA data+1353(SB)/1, $40
DATA data+1354(SB)/1, $116
@@ -639,8 +639,8 @@
DATA data+1358(SB)/1, $58
DATA data+1359(SB)/1, $32
DATA data+1360(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:527:35
-//--- String buffer start ('pointer to ') at libgogo/symbol.go:529:42
+//--- String buffer end at libgogo/symbol.go:514:35
+//--- String buffer start ('pointer to ') at libgogo/symbol.go:516:42
DATA data+1384(SB)/1, $112
DATA data+1385(SB)/1, $111
DATA data+1386(SB)/1, $105
@@ -653,8 +653,8 @@
DATA data+1393(SB)/1, $111
DATA data+1394(SB)/1, $32
DATA data+1395(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:529:42
-//--- String buffer start ('array of ') at libgogo/symbol.go:533:44
+//--- String buffer end at libgogo/symbol.go:516:42
+//--- String buffer start ('array of ') at libgogo/symbol.go:520:44
DATA data+1416(SB)/1, $97
DATA data+1417(SB)/1, $114
DATA data+1418(SB)/1, $114
@@ -665,8 +665,8 @@
DATA data+1423(SB)/1, $102
DATA data+1424(SB)/1, $32
DATA data+1425(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:533:44
-//--- String buffer start (' of length ') at libgogo/symbol.go:535:46
+//--- String buffer end at libgogo/symbol.go:520:44
+//--- String buffer start (' of length ') at libgogo/symbol.go:522:46
DATA data+1448(SB)/1, $32
DATA data+1449(SB)/1, $111
DATA data+1450(SB)/1, $102
@@ -679,8 +679,8 @@
DATA data+1457(SB)/1, $104
DATA data+1458(SB)/1, $32
DATA data+1459(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:535:46
-//--- String buffer start (', internally named ') at
libgogo/symbol.go:537:54
+//--- String buffer end at libgogo/symbol.go:522:46
+//--- String buffer start (', internally named ') at
libgogo/symbol.go:524:54
DATA data+1480(SB)/1, $44
DATA data+1481(SB)/1, $32
DATA data+1482(SB)/1, $105
@@ -701,8 +701,8 @@
DATA data+1497(SB)/1, $100
DATA data+1498(SB)/1, $32
DATA data+1499(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:537:54
-//--- String buffer start ('<unknown>') at libgogo/symbol.go:546:40
+//--- String buffer end at libgogo/symbol.go:524:54
+//--- String buffer start ('<unknown>') at libgogo/symbol.go:533:40
DATA data+1520(SB)/1, $60
DATA data+1521(SB)/1, $117
DATA data+1522(SB)/1, $110
@@ -713,8 +713,8 @@
DATA data+1527(SB)/1, $110
DATA data+1528(SB)/1, $62
DATA data+1529(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:546:40
-//--- String buffer start (', size: ') at libgogo/symbol.go:548:35
+//--- String buffer end at libgogo/symbol.go:533:40
+//--- String buffer start (', size: ') at libgogo/symbol.go:535:35
DATA data+1552(SB)/1, $44
DATA data+1553(SB)/1, $32
DATA data+1554(SB)/1, $115
@@ -724,8 +724,8 @@
DATA data+1558(SB)/1, $58
DATA data+1559(SB)/1, $32
DATA data+1560(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:548:35
-//--- String buffer start (', offset: ') at libgogo/symbol.go:551:37
+//--- String buffer end at libgogo/symbol.go:535:35
+//--- String buffer start (', offset: ') at libgogo/symbol.go:538:37
DATA data+1584(SB)/1, $44
DATA data+1585(SB)/1, $32
DATA data+1586(SB)/1, $111
@@ -737,231 +737,235 @@
DATA data+1592(SB)/1, $58
DATA data+1593(SB)/1, $32
DATA data+1594(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:551:37
-//--- String buffer start (')\n') at libgogo/symbol.go:554:30
+//--- String buffer end at libgogo/symbol.go:538:37
+//--- String buffer start (')\n') at libgogo/symbol.go:541:30
DATA data+1616(SB)/1, $41
DATA data+1617(SB)/1, $10
DATA data+1618(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:554:30
-//--- String buffer start ('FUNC,') at libgogo/symbol.go:569:23
+//--- String buffer end at libgogo/symbol.go:541:30
+//--- String buffer start ('FUNC,') at libgogo/symbol.go:556:23
DATA data+1640(SB)/1, $70
DATA data+1641(SB)/1, $85
DATA data+1642(SB)/1, $78
DATA data+1643(SB)/1, $67
DATA data+1644(SB)/1, $44
DATA data+1645(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:569:23
-//--- String buffer start (',') at libgogo/symbol.go:572:32
+//--- String buffer end at libgogo/symbol.go:556:23
+//--- String buffer start (',') at libgogo/symbol.go:559:32
DATA data+1664(SB)/1, $44
DATA data+1665(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:572:32
-//--- String buffer start ('·') at libgogo/symbol.go:574:33
+//--- String buffer end at libgogo/symbol.go:559:32
+//--- String buffer start ('·') at libgogo/symbol.go:561:33
DATA data+1688(SB)/1, $194
DATA data+1689(SB)/1, $183
DATA data+1690(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:574:33
-//--- String buffer start (',') at libgogo/symbol.go:576:32
+//--- String buffer end at libgogo/symbol.go:561:33
+//--- String buffer start (',') at libgogo/symbol.go:563:32
DATA data+1712(SB)/1, $44
DATA data+1713(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:576:32
-//--- String buffer start (':') at libgogo/symbol.go:579:36
+//--- String buffer end at libgogo/symbol.go:563:32
+//--- String buffer start (':') at libgogo/symbol.go:566:36
DATA data+1736(SB)/1, $58
DATA data+1737(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:579:36
-//--- String buffer start (',') at libgogo/symbol.go:584:40
+//--- String buffer end at libgogo/symbol.go:566:36
+//--- String buffer start (',') at libgogo/symbol.go:571:40
DATA data+1760(SB)/1, $44
DATA data+1761(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:584:40
-//--- String buffer start ('TYPE,') at libgogo/symbol.go:601:23
+//--- String buffer end at libgogo/symbol.go:571:40
+//--- String buffer start ('TYPE,') at libgogo/symbol.go:588:23
DATA data+1784(SB)/1, $84
DATA data+1785(SB)/1, $89
DATA data+1786(SB)/1, $80
DATA data+1787(SB)/1, $69
DATA data+1788(SB)/1, $44
DATA data+1789(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:601:23
-//--- String buffer start ('·') at libgogo/symbol.go:603:33
-DATA data+1808(SB)/1, $194
-DATA data+1809(SB)/1, $183
-DATA data+1810(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:603:33
-//--- String buffer start (',') at libgogo/symbol.go:605:32
-DATA data+1832(SB)/1, $44
-DATA data+1833(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:605:32
-//--- String buffer start (',') at libgogo/symbol.go:609:32
+//--- String buffer end at libgogo/symbol.go:588:23
+//--- String buffer start (',') at libgogo/symbol.go:591:32
+DATA data+1808(SB)/1, $44
+DATA data+1809(SB)/1, $0
+//--- String buffer end at libgogo/symbol.go:591:32
+//--- String buffer start ('·') at libgogo/symbol.go:593:33
+DATA data+1832(SB)/1, $194
+DATA data+1833(SB)/1, $183
+DATA data+1834(SB)/1, $0
+//--- String buffer end at libgogo/symbol.go:593:33
+//--- String buffer start (',') at libgogo/symbol.go:595:32
DATA data+1856(SB)/1, $44
DATA data+1857(SB)/1, $0
-//--- String buffer end at libgogo/symbol.go:609:32
+//--- String buffer end at libgogo/symbol.go:595:32
+//--- String buffer start (',') at libgogo/symbol.go:599:32
+DATA data+1880(SB)/1, $44
+DATA data+1881(SB)/1, $0
+//--- String buffer end at libgogo/symbol.go:599:32
//--- String buffer start ('') at libgogo/item.go:68:32
-DATA data+1968(SB)/1, $0
+DATA data+1992(SB)/1, $0
//--- String buffer end at libgogo/item.go:68:32
//--- String buffer start ('#') at libgogo/libgogo.go:25:26
-DATA data+6080(SB)/1, $35
-DATA data+6081(SB)/1, $0
+DATA data+6104(SB)/1, $35
+DATA data+6105(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:25:26
//--- String buffer start ('/proc/self/cmdline') at
libgogo/libgogo.go:27:39
-DATA data+6104(SB)/1, $47
-DATA data+6105(SB)/1, $112
-DATA data+6106(SB)/1, $114
-DATA data+6107(SB)/1, $111
-DATA data+6108(SB)/1, $99
-DATA data+6109(SB)/1, $47
-DATA data+6110(SB)/1, $115
-DATA data+6111(SB)/1, $101
-DATA data+6112(SB)/1, $108
-DATA data+6113(SB)/1, $102
-DATA data+6114(SB)/1, $47
-DATA data+6115(SB)/1, $99
-DATA data+6116(SB)/1, $109
-DATA data+6117(SB)/1, $100
-DATA data+6118(SB)/1, $108
-DATA data+6119(SB)/1, $105
-DATA data+6120(SB)/1, $110
-DATA data+6121(SB)/1, $101
-DATA data+6122(SB)/1, $0
+DATA data+6128(SB)/1, $47
+DATA data+6129(SB)/1, $112
+DATA data+6130(SB)/1, $114
+DATA data+6131(SB)/1, $111
+DATA data+6132(SB)/1, $99
+DATA data+6133(SB)/1, $47
+DATA data+6134(SB)/1, $115
+DATA data+6135(SB)/1, $101
+DATA data+6136(SB)/1, $108
+DATA data+6137(SB)/1, $102
+DATA data+6138(SB)/1, $47
+DATA data+6139(SB)/1, $99
+DATA data+6140(SB)/1, $109
+DATA data+6141(SB)/1, $100
+DATA data+6142(SB)/1, $108
+DATA data+6143(SB)/1, $105
+DATA data+6144(SB)/1, $110
+DATA data+6145(SB)/1, $101
+DATA data+6146(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:27:39
//--- String buffer start ('Error opening /proc/self/cmdline. Currently
GoGo is only supported on systems with /proc enabled.') at
libgogo/libgogo.go:29:118
-DATA data+6144(SB)/1, $69
-DATA data+6145(SB)/1, $114
-DATA data+6146(SB)/1, $114
-DATA data+6147(SB)/1, $111
-DATA data+6148(SB)/1, $114
-DATA data+6149(SB)/1, $32
-DATA data+6150(SB)/1, $111
-DATA data+6151(SB)/1, $112
-DATA data+6152(SB)/1, $101
-DATA data+6153(SB)/1, $110
-DATA data+6154(SB)/1, $105
-DATA data+6155(SB)/1, $110
-DATA data+6156(SB)/1, $103
-DATA data+6157(SB)/1, $32
-DATA data+6158(SB)/1, $47
-DATA data+6159(SB)/1, $112
-DATA data+6160(SB)/1, $114
-DATA data+6161(SB)/1, $111
-DATA data+6162(SB)/1, $99
-DATA data+6163(SB)/1, $47
-DATA data+6164(SB)/1, $115
-DATA data+6165(SB)/1, $101
-DATA data+6166(SB)/1, $108
-DATA data+6167(SB)/1, $102
-DATA data+6168(SB)/1, $47
-DATA data+6169(SB)/1, $99
-DATA data+6170(SB)/1, $109
-DATA data+6171(SB)/1, $100
-DATA data+6172(SB)/1, $108
-DATA data+6173(SB)/1, $105
-DATA data+6174(SB)/1, $110
-DATA data+6175(SB)/1, $101
-DATA data+6176(SB)/1, $46
-DATA data+6177(SB)/1, $32
-DATA data+6178(SB)/1, $67
-DATA data+6179(SB)/1, $117
-DATA data+6180(SB)/1, $114
-DATA data+6181(SB)/1, $114
-DATA data+6182(SB)/1, $101
-DATA data+6183(SB)/1, $110
-DATA data+6184(SB)/1, $116
-DATA data+6185(SB)/1, $108
-DATA data+6186(SB)/1, $121
-DATA data+6187(SB)/1, $32
-DATA data+6188(SB)/1, $71
-DATA data+6189(SB)/1, $111
-DATA data+6190(SB)/1, $71
-DATA data+6191(SB)/1, $111
-DATA data+6192(SB)/1, $32
-DATA data+6193(SB)/1, $105
-DATA data+6194(SB)/1, $115
-DATA data+6195(SB)/1, $32
-DATA data+6196(SB)/1, $111
-DATA data+6197(SB)/1, $110
-DATA data+6198(SB)/1, $108
-DATA data+6199(SB)/1, $121
-DATA data+6200(SB)/1, $32
-DATA data+6201(SB)/1, $115
-DATA data+6202(SB)/1, $117
-DATA data+6203(SB)/1, $112
-DATA data+6204(SB)/1, $112
-DATA data+6205(SB)/1, $111
-DATA data+6206(SB)/1, $114
-DATA data+6207(SB)/1, $116
-DATA data+6208(SB)/1, $101
-DATA data+6209(SB)/1, $100
-DATA data+6210(SB)/1, $32
-DATA data+6211(SB)/1, $111
-DATA data+6212(SB)/1, $110
-DATA data+6213(SB)/1, $32
-DATA data+6214(SB)/1, $115
-DATA data+6215(SB)/1, $121
-DATA data+6216(SB)/1, $115
-DATA data+6217(SB)/1, $116
-DATA data+6218(SB)/1, $101
-DATA data+6219(SB)/1, $109
-DATA data+6220(SB)/1, $115
-DATA data+6221(SB)/1, $32
-DATA data+6222(SB)/1, $119
-DATA data+6223(SB)/1, $105
-DATA data+6224(SB)/1, $116
-DATA data+6225(SB)/1, $104
-DATA data+6226(SB)/1, $32
-DATA data+6227(SB)/1, $47
+DATA data+6168(SB)/1, $69
+DATA data+6169(SB)/1, $114
+DATA data+6170(SB)/1, $114
+DATA data+6171(SB)/1, $111
+DATA data+6172(SB)/1, $114
+DATA data+6173(SB)/1, $32
+DATA data+6174(SB)/1, $111
+DATA data+6175(SB)/1, $112
+DATA data+6176(SB)/1, $101
+DATA data+6177(SB)/1, $110
+DATA data+6178(SB)/1, $105
+DATA data+6179(SB)/1, $110
+DATA data+6180(SB)/1, $103
+DATA data+6181(SB)/1, $32
+DATA data+6182(SB)/1, $47
+DATA data+6183(SB)/1, $112
+DATA data+6184(SB)/1, $114
+DATA data+6185(SB)/1, $111
+DATA data+6186(SB)/1, $99
+DATA data+6187(SB)/1, $47
+DATA data+6188(SB)/1, $115
+DATA data+6189(SB)/1, $101
+DATA data+6190(SB)/1, $108
+DATA data+6191(SB)/1, $102
+DATA data+6192(SB)/1, $47
+DATA data+6193(SB)/1, $99
+DATA data+6194(SB)/1, $109
+DATA data+6195(SB)/1, $100
+DATA data+6196(SB)/1, $108
+DATA data+6197(SB)/1, $105
+DATA data+6198(SB)/1, $110
+DATA data+6199(SB)/1, $101
+DATA data+6200(SB)/1, $46
+DATA data+6201(SB)/1, $32
+DATA data+6202(SB)/1, $67
+DATA data+6203(SB)/1, $117
+DATA data+6204(SB)/1, $114
+DATA data+6205(SB)/1, $114
+DATA data+6206(SB)/1, $101
+DATA data+6207(SB)/1, $110
+DATA data+6208(SB)/1, $116
+DATA data+6209(SB)/1, $108
+DATA data+6210(SB)/1, $121
+DATA data+6211(SB)/1, $32
+DATA data+6212(SB)/1, $71
+DATA data+6213(SB)/1, $111
+DATA data+6214(SB)/1, $71
+DATA data+6215(SB)/1, $111
+DATA data+6216(SB)/1, $32
+DATA data+6217(SB)/1, $105
+DATA data+6218(SB)/1, $115
+DATA data+6219(SB)/1, $32
+DATA data+6220(SB)/1, $111
+DATA data+6221(SB)/1, $110
+DATA data+6222(SB)/1, $108
+DATA data+6223(SB)/1, $121
+DATA data+6224(SB)/1, $32
+DATA data+6225(SB)/1, $115
+DATA data+6226(SB)/1, $117
+DATA data+6227(SB)/1, $112
DATA data+6228(SB)/1, $112
-DATA data+6229(SB)/1, $114
-DATA data+6230(SB)/1, $111
-DATA data+6231(SB)/1, $99
-DATA data+6232(SB)/1, $32
-DATA data+6233(SB)/1, $101
-DATA data+6234(SB)/1, $110
-DATA data+6235(SB)/1, $97
-DATA data+6236(SB)/1, $98
-DATA data+6237(SB)/1, $108
-DATA data+6238(SB)/1, $101
-DATA data+6239(SB)/1, $100
-DATA data+6240(SB)/1, $46
-DATA data+6241(SB)/1, $0
+DATA data+6229(SB)/1, $111
+DATA data+6230(SB)/1, $114
+DATA data+6231(SB)/1, $116
+DATA data+6232(SB)/1, $101
+DATA data+6233(SB)/1, $100
+DATA data+6234(SB)/1, $32
+DATA data+6235(SB)/1, $111
+DATA data+6236(SB)/1, $110
+DATA data+6237(SB)/1, $32
+DATA data+6238(SB)/1, $115
+DATA data+6239(SB)/1, $121
+DATA data+6240(SB)/1, $115
+DATA data+6241(SB)/1, $116
+DATA data+6242(SB)/1, $101
+DATA data+6243(SB)/1, $109
+DATA data+6244(SB)/1, $115
+DATA data+6245(SB)/1, $32
+DATA data+6246(SB)/1, $119
+DATA data+6247(SB)/1, $105
+DATA data+6248(SB)/1, $116
+DATA data+6249(SB)/1, $104
+DATA data+6250(SB)/1, $32
+DATA data+6251(SB)/1, $47
+DATA data+6252(SB)/1, $112
+DATA data+6253(SB)/1, $114
+DATA data+6254(SB)/1, $111
+DATA data+6255(SB)/1, $99
+DATA data+6256(SB)/1, $32
+DATA data+6257(SB)/1, $101
+DATA data+6258(SB)/1, $110
+DATA data+6259(SB)/1, $97
+DATA data+6260(SB)/1, $98
+DATA data+6261(SB)/1, $108
+DATA data+6262(SB)/1, $101
+DATA data+6263(SB)/1, $100
+DATA data+6264(SB)/1, $46
+DATA data+6265(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:29:118
//--- String buffer start ('Error closing file /proc/self/cmdline') at
libgogo/libgogo.go:42:58
-DATA data+6264(SB)/1, $69
-DATA data+6265(SB)/1, $114
-DATA data+6266(SB)/1, $114
-DATA data+6267(SB)/1, $111
-DATA data+6268(SB)/1, $114
-DATA data+6269(SB)/1, $32
-DATA data+6270(SB)/1, $99
-DATA data+6271(SB)/1, $108
-DATA data+6272(SB)/1, $111
-DATA data+6273(SB)/1, $115
-DATA data+6274(SB)/1, $105
-DATA data+6275(SB)/1, $110
-DATA data+6276(SB)/1, $103
-DATA data+6277(SB)/1, $32
-DATA data+6278(SB)/1, $102
-DATA data+6279(SB)/1, $105
-DATA data+6280(SB)/1, $108
-DATA data+6281(SB)/1, $101
-DATA data+6282(SB)/1, $32
-DATA data+6283(SB)/1, $47
-DATA data+6284(SB)/1, $112
-DATA data+6285(SB)/1, $114
-DATA data+6286(SB)/1, $111
-DATA data+6287(SB)/1, $99
-DATA data+6288(SB)/1, $47
-DATA data+6289(SB)/1, $115
-DATA data+6290(SB)/1, $101
-DATA data+6291(SB)/1, $108
-DATA data+6292(SB)/1, $102
-DATA data+6293(SB)/1, $47
+DATA data+6288(SB)/1, $69
+DATA data+6289(SB)/1, $114
+DATA data+6290(SB)/1, $114
+DATA data+6291(SB)/1, $111
+DATA data+6292(SB)/1, $114
+DATA data+6293(SB)/1, $32
DATA data+6294(SB)/1, $99
-DATA data+6295(SB)/1, $109
-DATA data+6296(SB)/1, $100
-DATA data+6297(SB)/1, $108
+DATA data+6295(SB)/1, $108
+DATA data+6296(SB)/1, $111
+DATA data+6297(SB)/1, $115
DATA data+6298(SB)/1, $105
DATA data+6299(SB)/1, $110
-DATA data+6300(SB)/1, $101
-DATA data+6301(SB)/1, $0
+DATA data+6300(SB)/1, $103
+DATA data+6301(SB)/1, $32
+DATA data+6302(SB)/1, $102
+DATA data+6303(SB)/1, $105
+DATA data+6304(SB)/1, $108
+DATA data+6305(SB)/1, $101
+DATA data+6306(SB)/1, $32
+DATA data+6307(SB)/1, $47
+DATA data+6308(SB)/1, $112
+DATA data+6309(SB)/1, $114
+DATA data+6310(SB)/1, $111
+DATA data+6311(SB)/1, $99
+DATA data+6312(SB)/1, $47
+DATA data+6313(SB)/1, $115
+DATA data+6314(SB)/1, $101
+DATA data+6315(SB)/1, $108
+DATA data+6316(SB)/1, $102
+DATA data+6317(SB)/1, $47
+DATA data+6318(SB)/1, $99
+DATA data+6319(SB)/1, $109
+DATA data+6320(SB)/1, $100
+DATA data+6321(SB)/1, $108
+DATA data+6322(SB)/1, $105
+DATA data+6323(SB)/1, $110
+DATA data+6324(SB)/1, $101
+DATA data+6325(SB)/1, $0
//--- String buffer end at libgogo/libgogo.go:42:58
-GLOBL data(SB),$6320
+GLOBL data(SB),$6344

TEXT main·init(SB),0,$0-0
//--- Assign byte buffer to new string constant start at
libgogo/convert.go:74:24
@@ -1106,422 +1110,429 @@
//--- Assign string length to new string constant start at
libgogo/symbol.go:120:32
MOVQ $0, data+512(SB)
//--- Assign string length to new string constant end at
libgogo/symbol.go:120:32
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:415:30
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:402:30
LEAQ data+520(SB), R8
MOVQ R8, data+528(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:415:30
- //--- Assign string length to new string constant start at
libgogo/symbol.go:415:30
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:402:30
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:402:30
MOVQ $7, data+536(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:415:30
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:422:31
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:402:30
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:409:31
LEAQ data+544(SB), R8
MOVQ R8, data+560(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:422:31
- //--- Assign string length to new string constant start at
libgogo/symbol.go:422:31
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:409:31
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:409:31
MOVQ $8, data+568(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:422:31
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:424:38
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:409:31
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:411:38
LEAQ data+576(SB), R8
MOVQ R8, data+592(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:424:38
- //--- Assign string length to new string constant start at
libgogo/symbol.go:424:38
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:411:38
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:411:38
MOVQ $11, data+600(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:424:38
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:428:40
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:411:38
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:415:40
LEAQ data+608(SB), R8
MOVQ R8, data+624(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:428:40
- //--- Assign string length to new string constant start at
libgogo/symbol.go:428:40
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:415:40
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:415:40
MOVQ $9, data+632(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:428:40
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:430:42
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:415:40
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:417:42
LEAQ data+640(SB), R8
MOVQ R8, data+656(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:430:42
- //--- Assign string length to new string constant start at
libgogo/symbol.go:430:42
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:417:42
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:417:42
MOVQ $11, data+664(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:430:42
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:432:50
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:417:42
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:419:50
LEAQ data+672(SB), R8
MOVQ R8, data+696(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:432:50
- //--- Assign string length to new string constant start at
libgogo/symbol.go:432:50
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:419:50
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:419:50
MOVQ $19, data+704(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:432:50
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:441:36
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:419:50
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:428:36
LEAQ data+712(SB), R8
MOVQ R8, data+728(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:441:36
- //--- Assign string length to new string constant start at
libgogo/symbol.go:441:36
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:428:36
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:428:36
MOVQ $9, data+736(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:441:36
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:443:31
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:428:36
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:430:31
LEAQ data+744(SB), R8
MOVQ R8, data+760(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:443:31
- //--- Assign string length to new string constant start at
libgogo/symbol.go:443:31
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:430:31
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:430:31
MOVQ $8, data+768(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:443:31
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:446:33
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:430:31
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:433:33
LEAQ data+776(SB), R8
MOVQ R8, data+792(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:446:33
- //--- Assign string length to new string constant start at
libgogo/symbol.go:446:33
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:433:33
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:433:33
MOVQ $10, data+800(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:446:33
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:449:26
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:433:33
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:436:26
LEAQ data+808(SB), R8
MOVQ R8, data+816(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:449:26
- //--- Assign string length to new string constant start at
libgogo/symbol.go:449:26
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:436:26
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:436:26
MOVQ $2, data+824(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:449:26
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:462:28
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:436:26
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:449:28
LEAQ data+832(SB), R8
MOVQ R8, data+840(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:462:28
- //--- Assign string length to new string constant start at
libgogo/symbol.go:462:28
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:449:28
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:449:28
MOVQ $5, data+848(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:462:28
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:469:31
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:449:28
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:456:31
LEAQ data+856(SB), R8
MOVQ R8, data+872(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:469:31
- //--- Assign string length to new string constant start at
libgogo/symbol.go:469:31
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:456:31
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:456:31
MOVQ $8, data+880(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:469:31
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:472:26
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:456:31
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:459:26
LEAQ data+888(SB), R8
MOVQ R8, data+896(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:472:26
- //--- Assign string length to new string constant start at
libgogo/symbol.go:472:26
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:459:26
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:459:26
MOVQ $2, data+904(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:472:26
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:474:29
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:459:26
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:461:29
LEAQ data+912(SB), R8
MOVQ R8, data+920(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:474:29
- //--- Assign string length to new string constant start at
libgogo/symbol.go:474:29
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:461:29
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:461:29
MOVQ $2, data+928(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:474:29
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:476:35
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:461:29
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:463:35
LEAQ data+936(SB), R8
MOVQ R8, data+952(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:476:35
- //--- Assign string length to new string constant start at
libgogo/symbol.go:476:35
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:463:35
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:463:35
MOVQ $8, data+960(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:476:35
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:478:42
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:463:35
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:465:42
LEAQ data+968(SB), R8
MOVQ R8, data+984(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:478:42
- //--- Assign string length to new string constant start at
libgogo/symbol.go:478:42
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:465:42
+ //--- Assign string length to new string constant start at
libgogo/symbol.go:465:42
MOVQ $11, data+992(SB)
- //--- Assign string length to new string constant end at
libgogo/symbol.go:478:42
- //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:482:44
+ //--- Assign string length to new string constant end at
libgogo/symbol.go:465:42
+ //--- Assign byte buffer to new string constant start at
libgogo/symbol.go:469:44
LEAQ data+1000(SB), R8
MOVQ R8, data+1016(SB)
- //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:482:44
- //--- Assign string length to new string constant start at
libgogo/symbol.go:482:44
+ //--- Assign byte buffer to new string constant end at
libgogo/symbol.go:469:44
***The diff for this file has been truncated for email.***
=======================================
--- /src/asm_out.go Tue Jun 15 06:45:31 2010
+++ /src/asm_out.go Wed Jun 16 10:19:14 2010
@@ -79,6 +79,9 @@

libgogo.WriteString(fd, Header);
libgogo.WriteString(fd, "\n"); //Separator
+ if NeedsLink != 0 {
+ libgogo.WriteString(fd, "__UNLINKED_CODE\n");
+ }
libgogo.WriteString(fd, "//Symbol table:\n"); //Separator
libgogo.SymbolTableTypesToStringList(Types, &TypeSymbolTable);
PrintStringList(fd, &TypeSymbolTable, 1); //Type symbol table
=======================================
--- /src/gogo.go Sun Jun 13 12:22:21 2010
+++ /src/gogo.go Wed Jun 16 10:19:14 2010
@@ -119,7 +119,6 @@
}

PrintGlobalSymbolTable();
- //UndefinedForwardDeclaredTypeCheck();

if Compile == 1 {
i = libgogo.GetAlignedObjectListSize(GlobalObjects); //Get
required data segment size
=======================================
--- /src/libgogo/symbol.go Sun Jun 13 12:22:21 2010
+++ /src/libgogo/symbol.go Wed Jun 16 10:19:14 2010
@@ -335,19 +335,6 @@
}
return retVal;
}
-
-//
-// Returns the first type from the list which is forward declared
-//
-func GetFirstForwardDeclType(list *TypeDesc) *TypeDesc {
- var retValue *TypeDesc;
- for retValue = list; retValue != nil; retValue = retValue.Next {
- if retValue.ForwardDecl == 1 {
- break;
- }
- }
- return retValue;
-}

//
// Returns the (index)th parameter of the given function
@@ -599,6 +586,9 @@
var temp2 string;
for t = list; t != nil; t = t.Next {
temp = "TYPE,";
+ temp2 = IntToString(t.ForwardDecl);
+ StringAppend(&temp, temp2);
+ StringAppend(&temp, ",");
StringAppend(&temp, t.PackageName);
StringAppend(&temp, "·");
StringAppend(&temp, t.Name);
=======================================
--- /src/symtable.go Sun Jun 13 12:42:17 2010
+++ /src/symtable.go Wed Jun 16 10:19:14 2010
@@ -43,6 +43,11 @@
//
var nilPtr *libgogo.ObjectDesc = nil;

+//
+// Flag indicating whether file needs linking
+//
+var NeedsLink uint64 = 0;
+
//
// Initializes the global symbol table (objects and types)
//
@@ -104,23 +109,6 @@
libgogo.PrintObjects(LocalObjects);
}
}
-
-//
-// Checks for undefined types which were forward declared
-//
-func UndefinedForwardDeclaredTypeCheck() {
- var temptype *libgogo.TypeDesc;
- if Compile != 0 {
- temptype = libgogo.GetFirstForwardDeclType(GlobalTypes);
- if temptype != nil {
- SymbolTableError("undefined", "", "type", temptype.Name);
- }
- temptype = libgogo.GetFirstForwardDeclType(GlobalFunctions);
- if temptype != nil {
- SymbolTableError("undefined", "", "function", temptype.Name);
- }
- }
-}

//
// Creates a new type with the specified name to the symbol table
@@ -217,6 +205,7 @@
}
} else { //Forward declaration
basetype = libgogo.NewType(typename, packagename, 1, 0,
nil);
+ NeedsLink = 1; // We need linking because of a fwd.
declared type
GlobalTypes = libgogo.AppendType(basetype, GlobalTypes);
//Add forward declared type to global list
}
} else {
@@ -375,7 +364,9 @@
NewFct = libgogo.NewType(name, packagename, forwarddecl, 0, nil);
if forwarddecl == 0 {
CurrentFunction = NewFct;
- }
+ } else {
+ NeedsLink = 1; // We need linking because of a fwd declared
function
+ }
TempType = libgogo.GetType(name, packagename, GlobalFunctions, 1);
if TempType != nil {
if TempType.ForwardDecl == 1 { //Unset forward declaration

==============================================================================
Revision: 896555c749
Author: Michael Lippautz <michael....@gmail.com>
Date: Wed Jun 16 11:37:00 2010
Log: linker: type handling in symbol table should work now
http://code.google.com/p/gogc/source/detail?r=896555c749

Modified:
/src/libgogo/symbol.go
/src/linker.go
/src/utils.go

=======================================
--- /src/libgogo/symbol.go Wed Jun 16 10:19:14 2010
+++ /src/libgogo/symbol.go Wed Jun 16 11:37:00 2010
@@ -18,7 +18,7 @@
PackageName string;
ForwardDecl uint64; //If 1, type is forward declared
Form uint64;
- Len uint64;
+ Len uint64; // Len is array length if Base != nil, the size of the
type otherwise
Fields *ObjectDesc;
Base *TypeDesc; //If Form=FORM_FUNCTION, a value unequal nil indicates
that the function has been called at least once
Next *TypeDesc;
=======================================
--- /src/linker.go Tue Jun 15 08:35:35 2010
+++ /src/linker.go Wed Jun 16 11:37:00 2010
@@ -130,17 +130,30 @@
return retStr;
}

+//
+// Function parsing the main part of a type in a symbol table and adding it
+// to the global symbol table.
+//
func ParseSymTblType(ld *LineDesc) {
+ var some_t *libgogo.TypeDesc = nil;
+ var fwdStr string;
+ var fwdNum uint64;
var pkgType string;
var pkgName string;
- var fcnName string;
+ var typeName string;
var sizeStr string;
var sizeNum uint64;
var alignStr string;
var alignNum uint64;
var ind uint64;
- var some_t *libgogo.TypeDesc = nil;
-
+ var tmp1 uint64;
+ var tmp2 uint64;
+ var tmpStr1 string;
+ var tmpStr2 string;
+ // maybe some more flags, indicators, temps, strings,
numbers, ... ?!? ;)
+
+ fwdStr = GetNextSymToken(ld);
+ fwdNum = libgogo.StringToInt(fwdStr);
pkgType = GetNextSymToken(ld);
sizeStr = GetNextSymToken(ld);
sizeNum = libgogo.StringToInt(sizeStr);
@@ -149,9 +162,39 @@
ind = IsDefaultType(pkgType);
if ind == 0 { // non-default type, try to add
pkgName = GetPackageName(pkgType);
- fcnName = GetFuncName(pkgType);
- some_t = libgogo.NewType(fcnName, pkgName, sizeNum, alignNum, nil);
- GlobalTypes = libgogo.AppendType(some_t, GlobalTypes);
+ typeName = GetFuncName(pkgType);
+ some_t = libgogo.GetType(typeName, pkgName, GlobalTypes, 1);
+ if some_t == nil {
+ some_t = libgogo.NewType(typeName, pkgName, fwdNum, sizeNum,
nil);
+ GlobalTypes = libgogo.AppendType(some_t, GlobalTypes);
+ } else {
+ /* All kings of fwd declaration combinations need to be
checked */
+ if (some_t.ForwardDecl == 0) && (fwdNum == 0) {
+ tmp1 = libgogo.GetTypeSize(some_t);
+ tmp2 = libgogo.GetTypeSizeAligned(some_t);
+ if (sizeNum == tmp1) && (alignNum == tmp2) {
+ LinkWarn("duplicated type (", pkgType, "). sizes
matched.", "", "");
+ } else {
+ libgogo.StringAppend(&tmpStr1, "new: ");
+ libgogo.StringAppend(&tmpStr1, sizeStr);
+ libgogo.StringAppend(&tmpStr1, "; defined: ");
+ tmpStr2 = libgogo.IntToString(tmp1);
+ libgogo.StringAppend(&tmpStr1, tmpStr2);
+ LinkError("duplicate type: ", pkgType, ". Incompatible
sizes: ",tmpStr1, "");
+ }
+ }
+ if (some_t.ForwardDecl == 1) && (fwdNum == 0) {
+ /* Fix the params of the fwd. declared type */
+ some_t.ForwardDecl = 0;
+ some_t.Len = sizeNum;
+ }
+ if (some_t.ForwardDecl == 0) && (fwdNum == 1) {
+ ; // skip since this is useless
+ }
+ if (some_t.ForwardDecl == 1) && (fwdNum == 1) {
+ ; // skip since this is useless
+ }
+ }
}
}

=======================================
--- /src/utils.go Tue Jun 8 08:51:26 2010
+++ /src/utils.go Wed Jun 16 11:37:00 2010
@@ -144,16 +144,33 @@
}

//
-// Linker error; Always Fatal since this means someone edited the object
file
-// by hand
+// Linker error. Always Fatal.
//
-func LinkError(msg string) {
+func LinkError(msg1 string, msg2 string, msg3 string, msg4 string, msg5
string) {
PrintHead();
libgogo.PrintString(": linker error: ");
- libgogo.PrintString(msg);
+ libgogo.PrintString(msg1);
+ libgogo.PrintString(msg2);
+ libgogo.PrintString(msg3);
+ libgogo.PrintString(msg4);
+ libgogo.PrintString(msg5);
libgogo.PrintString("\n");
libgogo.Exit(5);
}
+
+//
+// Linker warning
+//
+func LinkWarn(msg1 string, msg2 string, msg3 string, msg4 string, msg5
string) {
+ PrintHead();
+ libgogo.PrintString(": linker warning: ");
+ libgogo.PrintString(msg1);
+ libgogo.PrintString(msg2);
+ libgogo.PrintString(msg3);
+ libgogo.PrintString(msg4);
+ libgogo.PrintString(msg5);
+ libgogo.PrintString("\n");
+}

func SymbolTableError(msg string, position string, msg2 string, identifier
string) {
var strLen uint64;
@@ -174,4 +191,3 @@
PrintLocalSymbolTable();
libgogo.Exit(4);
}
-
Reply all
Reply to author
Forward
0 new messages