mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 11:37:35 +00:00
eeb20775d2
This will help C++ code that uses exceptions to be tinier. For example, this change shaves away 1000 lines of assembly code from LLVM's libcxx, which is 0.7% of all assembly instructions in the entire library.
23 lines
716 B
C
23 lines
716 B
C
#ifndef COSMOPOLITAN_LIBC_STR_SLICE_H_
|
|
#define COSMOPOLITAN_LIBC_STR_SLICE_H_
|
|
#include "libc/stdbool.h"
|
|
#include "libc/str/str.h"
|
|
COSMOPOLITAN_C_START_
|
|
|
|
#define SlicesEqual(a, n, b, m) \
|
|
({ \
|
|
size_t __n = (n); \
|
|
__n == (m) && !memcmp(a, b, __n); \
|
|
})
|
|
|
|
#define SlicesEqualCase(a, n, b, m) \
|
|
({ \
|
|
size_t __n = (n); \
|
|
__n == (m) && !memcasecmp(a, b, __n); \
|
|
})
|
|
|
|
int CompareSlices(const char *, size_t, const char *, size_t) libcesque;
|
|
int CompareSlicesCase(const char *, size_t, const char *, size_t) libcesque;
|
|
|
|
COSMOPOLITAN_C_END_
|
|
#endif /* COSMOPOLITAN_LIBC_STR_SLICE_H_ */
|