C linkage is fun

Paulo Pinto pjmlp at progtools.org
Thu May 24 05:42:57 PDT 2012


On Thursday, 24 May 2012 at 12:18:14 UTC, Robert Clipsham wrote:
> On 24/05/2012 13:06, Alex Rønne Petersen wrote:
>> Just a little gotcha I ran into today:
>>
>> import core.memory;
>>
>> extern (C) void gc_collect()
>> {
>> assert(false, "nope!");
>> }
>>
>> void main()
>> {
>> GC.collect();
>> }
>>
>
> I believe this is by design - the linker will only look for 
> gc_collect() in a library if it isn't found in object files you 
> provide.
>
> This can be quite useful if you ever need to replace an 
> internal function of something, it can easily go wrong though 
> if your build process changes for some reason (or any number of 
> other reasons!)

That is how I've done my own malloc()/free() with memory usage 
object tracking, long before tools like Valgrind became available.


More information about the Digitalmars-d mailing list