Skip to content

Commit

Permalink
quiche: Work around Clang miscompile on mipsel
Browse files Browse the repository at this point in the history
  • Loading branch information
klzgrad committed Nov 5, 2023
1 parent b5824de commit bf66aec
Showing 1 changed file with 5 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@

namespace http2 {

#if defined(__MIPSEL__) && !defined(__LP64__)
// Clang 18+ miscompiles "uint64_t x; size_t y; x <<= y;" on mipsel.
typedef uint32_t HuffmanAccumulator;
#else
// HuffmanAccumulator is used to store bits during decoding, e.g. next N bits
// that have not yet been decoded, but have been extracted from the encoded
// string). An advantage of using a uint64 for the accumulator
Expand All @@ -34,6 +38,7 @@ namespace http2 {
// reach 30), and then keep track of the last two bits we've not been able to
// add to the accumulator.
typedef uint64_t HuffmanAccumulator;
#endif
typedef size_t HuffmanAccumulatorBitCount;

// HuffmanBitBuffer stores the leading edge of bits to be decoded. The high
Expand Down

0 comments on commit bf66aec

Please sign in to comment.