You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying c2rust on LibreDWG; it transpiles the first file (bits.c) just fine (into bits.rs), but then a foreign exception occurs without any further clue.
I've used the cmake route without additional flags, on Ubuntu 22 WSL2.
I assume I have to solve it on my own, but maybe this rings a bell or maybe you have an idea what I can do to pinpoint the problem.
I understand the c2make project is in its early stages; it would be nice to have verbose logging to know what it's about to do.
git clone https://github.com/LibreDWG/libredwg.git
cd libredwg
cargo install c2rust
mkdir .build-c2rust
cd .build-c2rust
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
c2rust transpile compile_commands.json
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/bits.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/objects.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/bits.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/hash.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/dwg.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/common.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/bits.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/hash.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/decode_r2007.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/objects.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/print.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/common.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/dynapi.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/objects.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/bits.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/objects.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/bits.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/codepages.c
warning: Skipping duplicate compilation cmd for /home/frank/repos/libredwg/src/classes.c
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
/home/frank/repos/libredwg/src/bits.c:494:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:524:21: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
v = be64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:95:36: note: expanded from macro 'be64toh'
# define be64toh(x) bswap_64 (x)
^
/usr/include/byteswap.h:38:33: note: expanded from macro 'bswap_64'
#define bswap_64(x) __bswap_64 (x)
^
/home/frank/repos/libredwg/src/bits.c:578:23: warning: cast from 'unsigned char *' to 'uint64_t *' (aka 'unsigned long *') increases required alignment from 1 to 8 [-Wcast-align]
u.u = le64toh (*(uint64_t *)&dat->chain[dat->byte]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/common.h:91:27: note: expanded from macro 'le64toh'
# define le64toh(x) (x)
^
/home/frank/repos/libredwg/src/bits.c:2151:46: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
BITCODE_TV str = bit_embed_TU ((BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2180:30: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
bit_write_TU (dat, (BITCODE_TU)s);
^~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2550:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2587:38: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
char *u8 = bit_convert_TU ((BITCODE_TU)chain);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2625:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:2666:31: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
length = bit_wcs2len ((BITCODE_TU)chain) + 1;
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3462:29: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
return bit_eq_TU (str2, (BITCODE_TU)wstr1);
^~~~~~~~~~~~~~~~~
/home/frank/repos/libredwg/src/bits.c:3501:12: warning: cast from 'BITCODE_TV' (aka 'char *') to 'BITCODE_TU' (aka 'unsigned short *') increases required alignment from 1 to 2 [-Wcast-align]
c = *(BITCODE_TU)str;
^~~~~~~~~~~~~~~
11 warnings generated.
Transpiling bits.c
fatal runtime error: Rust cannot catch foreign exceptions
The text was updated successfully, but these errors were encountered:
I'm trying c2rust on LibreDWG; it transpiles the first file (bits.c) just fine (into bits.rs), but then a foreign exception occurs without any further clue.
I've used the cmake route without additional flags, on Ubuntu 22 WSL2.
I assume I have to solve it on my own, but maybe this rings a bell or maybe you have an idea what I can do to pinpoint the problem.
I understand the c2make project is in its early stages; it would be nice to have verbose logging to know what it's about to do.
The text was updated successfully, but these errors were encountered: