{"record":{"id":"e6205e04e71573db","repo":"golang/go","slug":"s-invalid-symbol-type-d","errorCode":null,"errorMessage":"%s: invalid symbol type %d","messagePattern":"(.+?): invalid symbol type (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/cmd/link/internal/loadpe/ldpe.go","lineNumber":732,"sourceCode":"\t\t// details on this problem.\n\t\tif state.arch.Family == sys.I386 && name[0] == '_' && name != \"_main\" && !strings.HasPrefix(name, \"__imp_\") {\n\t\t\tname = name[1:] // _Name => Name\n\t\t}\n\t}\n\n\t// remove last @XXX\n\tif i := strings.LastIndex(name, \"@\"); i >= 0 {\n\t\tname = name[:i]\n\t}\n\n\tvar s loader.Sym\n\tvar bld *loader.SymbolBuilder\n\t// Microsoft's PE documentation is contradictory. It says that the symbol's complex type\n\t// is stored in the pesym.Type most significant byte, but MSVC, LLVM, and mingw store it\n\t// in the 4 high bits of the less significant byte.\n\tswitch uint8(pesym.Type&0xf0) >> 4 {\n\tdefault:\n\t\treturn nil, 0, fmt.Errorf(\"%s: invalid symbol type %d\", symname, pesym.Type)\n\n\tcase IMAGE_SYM_DTYPE_FUNCTION, IMAGE_SYM_DTYPE_NULL:\n\t\tswitch pesym.StorageClass {\n\t\tcase IMAGE_SYM_CLASS_EXTERNAL: //global\n\t\t\ts = state.l.LookupOrCreateCgoExport(name, 0)\n\n\t\tcase IMAGE_SYM_CLASS_NULL, IMAGE_SYM_CLASS_STATIC, IMAGE_SYM_CLASS_LABEL:\n\t\t\ts = state.l.LookupOrCreateCgoExport(name, state.localSymVersion)\n\t\t\tbld = makeUpdater(state.l, bld, s)\n\t\t\tbld.SetDuplicateOK(true)\n\n\t\tdefault:\n\t\t\treturn nil, 0, fmt.Errorf(\"%s: invalid symbol binding %d\", symname, pesym.StorageClass)\n\t\t}\n\t}\n\n\tif s != 0 && state.l.SymType(s) == 0 && (pesym.StorageClass != IMAGE_SYM_CLASS_STATIC || pesym.Value != 0) {\n\t\tbld = makeUpdater(state.l, bld, s)","sourceCodeStart":714,"sourceCodeEnd":750,"githubUrl":"https://github.com/golang/go/blob/b6b368adc57c96c3151d224d172029f233ead2c3/src/cmd/link/internal/loadpe/ldpe.go#L714-L750","documentation":"Error \"%s: invalid symbol type %d\" thrown in golang/go.","triggerScenarios":"Thrown at src/cmd/link/internal/loadpe/ldpe.go:732 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"b6b368adc57c96c3151d224d172029f233ead2c3","analyzedAt":"2026-08-12T00:22:02.250Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}