fix baseline build (old cairo) - 'cairo_rectangle_int_t' does not name a type
[LibreOffice.git] / external / hunspell / ubsan.patch.0
blobb52802d209f4b72c1ec8d307b4c95620efeaffc0
1 --- src/hunspell/hashmgr.cxx
2 +++ src/hunspell/hashmgr.cxx
3 @@ -479,7 +479,7 @@
4  
5  int HashMgr::hash(const char * word) const
6  {
7 -    long  hv = 0;
8 +    unsigned long  hv = 0;
9      for (int i=0; i < 4  &&  *word != 0; i++)
10          hv = (hv << 8) | (*word++);
11      while (*word != 0) {
12 --- src/hunspell/csutil.cxx
13 +++ src/hunspell/csutil.cxx
14 @@ -147,7 +147,7 @@
15          case 0xd0: {    // 2-byte UTF-8 codes
16              if ((*(u8+1) & 0xc0) == 0x80) {
17                  u2->h = (*u8 & 0x1f) >> 2;
18 -                u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);
19 +                u2->l = (*reinterpret_cast<unsigned char const *>(u8) << 6) + (*(u8+1) & 0x3f);
20                  u8++;
21              } else {
22                  HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed char *)src), src);
23 @@ -158,10 +158,10 @@
24          }
25          case 0xe0: {    // 3-byte UTF-8 codes
26              if ((*(u8+1) & 0xc0) == 0x80) {
27 -                u2->h = ((*u8 & 0x0f) << 4) + ((*(u8+1) & 0x3f) >> 2);
28 +                u2->h = ((*reinterpret_cast<unsigned char const *>(u8) & 0x0f) << 4) + ((*(u8+1) & 0x3f) >> 2);
29                  u8++;
30                  if ((*(u8+1) & 0xc0) == 0x80) {
31 -                    u2->l = (*u8 << 6) + (*(u8+1) & 0x3f);
32 +                    u2->l = (*reinterpret_cast<unsigned char const *>(u8) << 6) + (*(u8+1) & 0x3f);
33                      u8++;
34                  } else {
35                      HUNSPELL_WARNING(stderr, "UTF-8 encoding error. Missing continuation byte in %ld. character position:\n%s\n", static_cast<long>(u8 - (signed char *)src), src);