Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

fix(cl): Async++ conversion operator reaches unknown cursor kind 26

オープン
#996 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
半日
初心者へのやさしさ
62/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
cpp, go
領域
tooling

調査の方向性

The panic comes from the loadDecl switch in cl/preload.go, which has no case for Cursor_ConversionFunction, though the class-local newClassCtx path already handles it; compare the two to see how that cursor kind is treated. Reproduce by generating bindings for the Async++ headers with llcppg as described in the issue, or start from explicit operator bool() in ref_count.h:146. Done when that header no longer panics with kind 26 and the conversion operator is handled consistently with the existing path.

索引モデルが issue の本文から書いたものです。

説明

bug

Observed failure

The recursive installed-header generation for Async++ reaches explicit operator bool() const in async++/ref_count.h:146 and panics in loadDecl with cursor kind 26.

panic: .../include/async++/ref_count.h:146:2: loadDecl: unknown kind - 26
github.com/goplus/llcppg/cl.loadDecl
    cl/preload.go:152

Confirmed Linux arm64 CI job. Formula testing and both compiler/tool builds succeeded; Test llcppg generation is the failing step. Other matrix jobs were still pending when this report was prepared, so this is not a claim that every platform has reproduced the failure.

Versions and reproduction input

  • llcppg: 8fc0f987e41ffe4b4f608e9541422b460ea89fea.
  • LLGo: afe9a5407260348b18c7104e98d76cb5cdf48b29; LLVM 21, Linux arm64.
  • Actual installed source: Amanieu/asyncplusplus v1.2, commit 4159da79e20ad6d0eb1f13baa0f10e989edd9fba, ref_count.h.
  • Failed configuration is from index PR #7, head 49abce7:
{
  "Name": "async",
  "Language": "c++",
  "Dir": "./include/...",
  "LLGoPackage": "link: $(pkg-config --libs async++)",
  "NSPrefix": ["async::"]
}

Stage the installed headers under source/include, initialize the source Go module as in the linked workflow, and run llcppg -v ./generated ./source. There is no Files allowlist or ignored API in this configuration.

Expected behavior and source evidence

A valid conversion operator should not fall into an unknown-cursor panic. The current-main loadDecl switch handles CXX methods, constructors, and destructors, but not Cursor_ConversionFunction. The same file's class-local newClassCtx path does handle Cursor_ConversionFunction, so the existing handling does not cover the path reached by this input.

Latest main (aab6dbf0baedc47b42f9576a65dd79ce6715e31a) was inspected only, not executed. The job also logs missing-package warnings for some GCC 14 C++ headers; their causal relationship to this panic has not been established and is not asserted here.

主要言語
Go
スター
39
フォーク
13
平均マージ
1時間 28分
マージ済み PR(30日)
256

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

goplus/llcppg のほかの issue

goplus/llcppg の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。