X86_64 segmentation fault due to forgotten extern directive

Why does this cause a problem when extern is omitted? Is there some
standard return type C assumes when extern is not present?

···

Normal, on 32 bit machine sizeof(int) == sizeof(unsigned long).
This is not the case on x86_64

Guy Decoux

Why does this cause a problem when extern is omitted? Is there some
standard return type C assumes when extern is not present?

Yes, without declaration the return type is assumed to be int.

When you declare it 'extern VALUE localFunction()' it has the right return
type (unsigned long).

Guy Decoux