Skip to content

cgen error for myfile &C.FILE field of a struct instance, that is later explicitly freed #25325

Description

@spytheman
V version: V 0.4.11 f073169, press to see full `v doctor` output
V full version V 0.4.11 fa49b76.f073169
OS linux, Ubuntu 20.04.6 LTS
Processor 4 cpus, 64bit, little endian, Intel(R) Core(TM) i3-3225 CPU @ 3.30GHz
Memory 0.63GB/15.05GB
V executable /home/delian/v/v
V last modified time 2025-09-17 06:13:32
V home dir OK, value: /home/delian/v
VMODULES OK, value: /home/delian/.vmodules
VTMP OK, value: /tmp/v_1000
Current working dir OK, value: /home/delian/v
env VFLAGS "-no-parallel"
Git version git version 2.50.0
V git status weekly.2025.38-10-g14ef7651
.git/config present true
cc version cc (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
gcc version gcc (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0
clang version N/A
tcc version tcc version 0.9.28rc 2025-02-13 HEAD@f8bd136d (x86_64 Linux)
tcc git status thirdparty-linux-amd64 696c1d84
emcc version N/A
glibc version ldd (Ubuntu GLIBC 2.31-0ubuntu9.18) 2.31

What did you do?
./v -g -o vdbg cmd/v && ./vdbg /home/delian/code/misc/2025_09_17__09/a.v && /home/delian/code/misc/2025_09_17__09/a

struct Abc {
	myfile &C.FILE = unsafe { nil }
}

a := Abc{}
unsafe { a.free() }

What did you see?

================== C compilation error (from tcc): ==============
cc: /tmp/v_1000/a.01K5B509RGCZRHC5TKWZZF5C7J.tmp.c:662: warning: implicit declaration of function 'builtin__FILE_free'
cc: /home/delian/v/thirdparty/tcc/lib/libgc.a: error: 'GC_noop1_ptr' defined twice
cc: tcc: error: undefined symbol 'builtin__FILE_free'
=================================================================
(You can pass `-cg`, or `-show-c-output` as well, to print all the C error messages).

What did you expect to see?

a compiled program, that does not call builtin__FILE_free

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.Status: ConfirmedThis bug has been confirmed to be valid by a contributor.Unit: cgenBugs/feature requests, that are related to the default C generating backend.

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions