Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FYI: fatal runtime error: Rust cannot catch foreign exceptions #1051

Open
fr-an-k opened this issue Dec 15, 2023 · 0 comments
Open

FYI: fatal runtime error: Rust cannot catch foreign exceptions #1051

fr-an-k opened this issue Dec 15, 2023 · 0 comments

Comments

@fr-an-k
Copy link

fr-an-k commented Dec 15, 2023

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant