Trying to c2hs the following Foo.chs fails with "The phrase '.' is not allowed here." I want to get back 10. Replacing #sizeof with #offsetof causes c2hs to succeed. I think #sizeof should evaluate similarly to sizeof in C++ (sizeof(Foo::bar)). (I don't know how it can be done straightforwardly in C.)
/* Foo.h */
struct Foo {
char bar[10];
};
-- Foo.chs
#include "Foo.h"
module Foo where
sizeOfFooBar :: Int
sizeOfFooBar = {#sizeof Foo.bar#}
Trying to c2hs the following Foo.chs fails with "The phrase '.' is not allowed here." I want to get back 10. Replacing #sizeof with #offsetof causes c2hs to succeed. I think
#sizeof
should evaluate similarly tosizeof
in C++ (sizeof(Foo::bar)
). (I don't know how it can be done straightforwardly in C.)