-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Open
Labels
BugThis tag is applied to issues which reports bugs.This tag is applied to issues which reports bugs.Unit: CheckerBugs/feature requests, that are related to the type checker.Bugs/feature requests, that are related to the type checker.
Description
Describe the bug
Below is my (incorrect) implementation of offsetof.
Code: https://play.vlang.io/p/321ea89b0c
pub fn offsetof[T](member_name string) int {
$if T is $struct {
$for field in T.fields {
if field.name == member_name {
tmp := T{}
access := int(tmp.$(field.name)?)
return access
}
}
} $else {
$compile_error('offsetof only accepts struct types')
}
return 0
}
struct Test {
a int
b string
c int
}
fn main() {
println(offsetof[Test]('c'))
}Reproduction Steps
See included code.
Expected Behavior
Not sure honestly.
Current Behavior
Output:
/box/code.v:6: error: struct or union expected
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 .
Exited with error status 1
Possible Solution
No response
Additional Information/Context
No response
V version
V 0.4.12 abe97b6
Environment details (OS name and version, etc.)
|V full version |V 0.4.12 abe97b636b16b37eb996bfd45c8b6a28d157b2cf
|:-------------------|:-------------------
|OS |linux, Debian GNU/Linux 12 (bookworm) (VM)
|Processor |2 cpus, 64bit, little endian, Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz
|Memory |0.57GB/2.02GB
| |
|V executable |/home/admin/v/v
|V last modified time|2025-12-31 17:25:31
| |
|V home dir |OK, value: /home/admin/v
|VMODULES |OK, value: .vmodules
|VTMP |OK, value: /tmp/v_0
|Current working dir |OK, value: /home/admin/playground
| |
|Git version |git version 2.39.5
|V git status |N/A
|.git/config present |true
| |
|cc version |cc (Debian 12.2.0-14+deb12u1) 12.2.0
|gcc version |gcc (Debian 12.2.0-14+deb12u1) 12.2.0
|clang version |Debian clang version 14.0.6
|tcc version |tcc version 0.9.28rc 2025-02-13 HEAD@f8bd136d (x86_64 Linux)
|tcc git status |Error: fatal: detected dubious ownership in repository at '/home/admin/v/thirdparty/tcc'
To add an exception for this directory, call:
git config --global --add safe.directory /home/admin/v/thirdparty/tcc
Error: fatal: detected dubious ownership in repository at '/home/admin/v/thirdparty/tcc'
To add an exception for this directory, call:
git config --global --add safe.directory /home/admin/v/thirdparty/tcc
|emcc version |N/A
|glibc version |ldd (Debian GLIBC 2.36-9+deb12u10) 2.36
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.
Metadata
Metadata
Assignees
Labels
BugThis tag is applied to issues which reports bugs.This tag is applied to issues which reports bugs.Unit: CheckerBugs/feature requests, that are related to the type checker.Bugs/feature requests, that are related to the type checker.