fix(selfhost): resolve segfault in buxc2 compiling src/

- Replace Decl's 256 inline struct fields with dynamic fields: *StructField
  array to avoid parser field limit truncation and name shifts.
- Update parser.bux and hir_lower.bux to use decl.fields[i].
- Fix uninitialized Symbol.refType in three stack-allocated Symbol sites:
  loopSym (for-loop iterator), vSym (enum variants), and HIR param sym.
  Garbage refType values (e.g. 0xFF) were leaking into scope tables,
  later copied to expr->refType, causing SIGSEGV in Lcx_LowerExpr.
This commit is contained in:
2026-06-09 15:03:45 +03:00
parent 0c41c7bb25
commit 4a860095fd
6 changed files with 66 additions and 1287 deletions
+2 -257
View File
@@ -243,6 +243,8 @@ struct EnumVariant {
}
struct Decl {
fieldCount: int,
fields: *StructField,
kind: int,
line: uint32,
column: uint32,
@@ -299,263 +301,6 @@ struct Decl {
childDecl1: *Decl, // linked list of decls (for module items, impl methods)
childDecl2: *Decl,
// Struct fields (up to 256)
fieldCount: int,
field0: StructField,
field1: StructField,
field2: StructField,
field3: StructField,
field4: StructField,
field5: StructField,
field6: StructField,
field7: StructField,
field8: StructField,
field9: StructField,
field10: StructField,
field11: StructField,
field12: StructField,
field13: StructField,
field14: StructField,
field15: StructField,
field16: StructField,
field17: StructField,
field18: StructField,
field19: StructField,
field20: StructField,
field21: StructField,
field22: StructField,
field23: StructField,
field24: StructField,
field25: StructField,
field26: StructField,
field27: StructField,
field28: StructField,
field29: StructField,
field30: StructField,
field31: StructField,
field32: StructField,
field33: StructField,
field34: StructField,
field35: StructField,
field36: StructField,
field37: StructField,
field38: StructField,
field39: StructField,
field40: StructField,
field41: StructField,
field42: StructField,
field43: StructField,
field44: StructField,
field45: StructField,
field46: StructField,
field47: StructField,
field48: StructField,
field49: StructField,
field50: StructField,
field51: StructField,
field52: StructField,
field53: StructField,
field54: StructField,
field55: StructField,
field56: StructField,
field57: StructField,
field58: StructField,
field59: StructField,
field60: StructField,
field61: StructField,
field62: StructField,
field63: StructField,
field64: StructField,
field65: StructField,
field66: StructField,
field67: StructField,
field68: StructField,
field69: StructField,
field70: StructField,
field71: StructField,
field72: StructField,
field73: StructField,
field74: StructField,
field75: StructField,
field76: StructField,
field77: StructField,
field78: StructField,
field79: StructField,
field80: StructField,
field81: StructField,
field82: StructField,
field83: StructField,
field84: StructField,
field85: StructField,
field86: StructField,
field87: StructField,
field88: StructField,
field89: StructField,
field90: StructField,
field91: StructField,
field92: StructField,
field93: StructField,
field94: StructField,
field95: StructField,
field96: StructField,
field97: StructField,
field98: StructField,
field99: StructField,
field100: StructField,
field101: StructField,
field102: StructField,
field103: StructField,
field104: StructField,
field105: StructField,
field106: StructField,
field107: StructField,
field108: StructField,
field109: StructField,
field110: StructField,
field111: StructField,
field112: StructField,
field113: StructField,
field114: StructField,
field115: StructField,
field116: StructField,
field117: StructField,
field118: StructField,
field119: StructField,
field120: StructField,
field121: StructField,
field122: StructField,
field123: StructField,
field124: StructField,
field125: StructField,
field126: StructField,
field127: StructField,
field128: StructField,
field129: StructField,
field130: StructField,
field131: StructField,
field132: StructField,
field133: StructField,
field134: StructField,
field135: StructField,
field136: StructField,
field137: StructField,
field138: StructField,
field139: StructField,
field140: StructField,
field141: StructField,
field142: StructField,
field143: StructField,
field144: StructField,
field145: StructField,
field146: StructField,
field147: StructField,
field148: StructField,
field149: StructField,
field150: StructField,
field151: StructField,
field152: StructField,
field153: StructField,
field154: StructField,
field155: StructField,
field156: StructField,
field157: StructField,
field158: StructField,
field159: StructField,
field160: StructField,
field161: StructField,
field162: StructField,
field163: StructField,
field164: StructField,
field165: StructField,
field166: StructField,
field167: StructField,
field168: StructField,
field169: StructField,
field170: StructField,
field171: StructField,
field172: StructField,
field173: StructField,
field174: StructField,
field175: StructField,
field176: StructField,
field177: StructField,
field178: StructField,
field179: StructField,
field180: StructField,
field181: StructField,
field182: StructField,
field183: StructField,
field184: StructField,
field185: StructField,
field186: StructField,
field187: StructField,
field188: StructField,
field189: StructField,
field190: StructField,
field191: StructField,
field192: StructField,
field193: StructField,
field194: StructField,
field195: StructField,
field196: StructField,
field197: StructField,
field198: StructField,
field199: StructField,
field200: StructField,
field201: StructField,
field202: StructField,
field203: StructField,
field204: StructField,
field205: StructField,
field206: StructField,
field207: StructField,
field208: StructField,
field209: StructField,
field210: StructField,
field211: StructField,
field212: StructField,
field213: StructField,
field214: StructField,
field215: StructField,
field216: StructField,
field217: StructField,
field218: StructField,
field219: StructField,
field220: StructField,
field221: StructField,
field222: StructField,
field223: StructField,
field224: StructField,
field225: StructField,
field226: StructField,
field227: StructField,
field228: StructField,
field229: StructField,
field230: StructField,
field231: StructField,
field232: StructField,
field233: StructField,
field234: StructField,
field235: StructField,
field236: StructField,
field237: StructField,
field238: StructField,
field239: StructField,
field240: StructField,
field241: StructField,
field242: StructField,
field243: StructField,
field244: StructField,
field245: StructField,
field246: StructField,
field247: StructField,
field248: StructField,
field249: StructField,
field250: StructField,
field251: StructField,
field252: StructField,
field253: StructField,
field254: StructField,
field255: StructField,
}
// ---------------------------------------------------------------------------