Skip to content

Parsing error in array: character array type mismatch; expected "[3 x i8]", got "[2 x i8]" #184

Closed
@jeshan

Description

@jeshan

I've got this error on one of my files. I've been able to narrow it down a bit.

Full gist: https://gist.github.com/jeshan/b8eb3cc7d7c12babedb1884b39b5e5b1

This gist was obtained when I compiled musl libc 1.2.2. In particular, its towctrans.c file produced the above assembly.

If you comment the module summary at the bottom (since #43 has not been implemented yet), you'll see the error:

character array type mismatch; expected "[3 x i8]", got "[2 x i8]"

This (terrible) string replace workaround on the @exceptions element would allow the parsing to succeed:

content = strings.Replace(content,
		"[2 x i8] c\"\\8E\\\\\", [2 x i8] c\"\\8F",
		"[3 x i8] c\"\\8E\\\\\", [3 x i8] c\"\\8F", 1)

So it looks like there's a bug handling the array elements at indices 8E and 8F (But I actually don't have a clue about what's going on yet)

Update: the exceptions array comes from this location. The code looks to be dealing with 2-element arrays but somehow we were expecting 3-element ones

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions