Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C error when assigning fixed array alias to struct optional field #23195

Closed
gechandesu opened this issue Dec 17, 2024 · 0 comments · Fixed by #23199
Closed

C error when assigning fixed array alias to struct optional field #23195

gechandesu opened this issue Dec 17, 2024 · 0 comments · Fixed by #23199
Assignees

Comments

@gechandesu
Copy link
Contributor

gechandesu commented Dec 17, 2024

V doctor:

V full version: V 0.4.8 5ec9bb5.8835b6f
OS: linux, Linux version 6.6.8-arch1-1 (linux@archlinux) (gcc (GCC) 13.2.1 20230801, GNU ld (GNU Binutils) 2.41.0) #1 SMP PREEMPT_DYNAMIC Thu, 21 Dec 2023 19:01:01 +0000
Processor: 16 cpus, 64bit, little endian, 12th Gen Intel(R) Core(TM) i5-1240P

getwd: /home/ge/Code/v/netaddr/issues
vexe: /home/ge/.vlang/v
vexe mtime: 2024-12-17 15:55:29

vroot: OK, value: /home/ge/.vlang
VMODULES: OK, value: /home/ge/.vmodules
VTMP: OK, value: /tmp/v_1000

Git version: git version 2.47.1
Git vroot status: weekly.2024.51-9-g8835b6f2
.git/config present: true

CC version: cc (GCC) 14.2.1 20240910
emcc version: N/A
thirdparty/tcc status: thirdparty-linux-amd64 0134e9b9

What did you do?
./v -g -o vdbg cmd/v && ./vdbg struct_optional_aliased_fixed_array_field.vv

type Arr = [4]u8

struct Foo {
	bar int
	baz ?Arr
}

fn main() {
	f := Foo{
		bar: 1
		baz: Arr([u8(5), 4, 3, 2]!)
	}
	println(f)
	assert f.baz as Arr == [u8(5), 4, 3, 2]!
}

What did you expect to see?

Assertion passed, no C errors.

What did you see instead?

================== C compilation error (from tcc): ==============
cc: /tmp/v_1000/struct_optional_aliased_fixed_array_field.01JFAPX70SQ3AVKPSXNNJCDG8G.tmp.c:5919: error: invalid operand types for binary operation
=================================================================
(You can pass `-cg`, or `-show-c-output` as well, to print all the C error messages).
builder error: 
==================
C error found. It should never happen, when compiling pure V code.
This is a V compiler bug, please report it using `v bug file.v`,
or goto https://github.com/vlang/v/issues/new/choose .
You can also use #help on Discord: https://discord.gg/vlang .

Note

You can use the 👍 reaction to increase the issue's priority for developers.

Please note that only the 👍 reaction to the issue itself counts as a vote.
Other reactions and those to comments will not be taken into account.

Huly®: V_0.6-21632

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants