constant: Add support for unary negation.

This commit is contained in:
Emilio Cobos Álvarez
2022-06-07 16:53:58 +02:00
parent 021d09db2b
commit 5da3715187
11 changed files with 17 additions and 0 deletions
+1
View File
@@ -50,5 +50,6 @@ typedef struct LargeFlags {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
void root(struct AlignFlags flags, struct DebugFlags bigger_flags, struct LargeFlags largest_flags);
@@ -50,6 +50,7 @@ typedef struct LargeFlags {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
#ifdef __cplusplus
extern "C" {
+1
View File
@@ -50,5 +50,6 @@ typedef struct {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
void root(AlignFlags flags, DebugFlags bigger_flags, LargeFlags largest_flags);
+1
View File
@@ -50,6 +50,7 @@ typedef struct {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
#ifdef __cplusplus
extern "C" {
+1
View File
@@ -119,6 +119,7 @@ struct LargeFlags {
};
/// Flag with a very large shift that usually would be narrowed.
constexpr static const LargeFlags LargeFlags_LARGE_SHIFT = LargeFlags{ /* .bits = */ (uint64_t)(1ull << 44) };
constexpr static const LargeFlags LargeFlags_INVERTED = LargeFlags{ /* .bits = */ (uint64_t)~(LargeFlags_LARGE_SHIFT).bits };
extern "C" {
+1
View File
@@ -34,5 +34,6 @@ cdef extern from *:
uint64_t bits;
# Flag with a very large shift that usually would be narrowed.
const LargeFlags LargeFlags_LARGE_SHIFT # = <LargeFlags>{ <uint64_t>(1ull << 44) }
const LargeFlags LargeFlags_INVERTED # = <LargeFlags>{ <uint64_t>~(LargeFlags_LARGE_SHIFT).bits }
void root(AlignFlags flags, DebugFlags bigger_flags, LargeFlags largest_flags);
+1
View File
@@ -50,5 +50,6 @@ struct LargeFlags {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
void root(struct AlignFlags flags, struct DebugFlags bigger_flags, struct LargeFlags largest_flags);
+1
View File
@@ -50,6 +50,7 @@ struct LargeFlags {
* Flag with a very large shift that usually would be narrowed.
*/
#define LargeFlags_LARGE_SHIFT (LargeFlags){ .bits = (uint64_t)(1ull << 44) }
#define LargeFlags_INVERTED (LargeFlags){ .bits = (uint64_t)~(LargeFlags_LARGE_SHIFT).bits }
#ifdef __cplusplus
extern "C" {
+1
View File
@@ -34,5 +34,6 @@ cdef extern from *:
uint64_t bits;
# Flag with a very large shift that usually would be narrowed.
const LargeFlags LargeFlags_LARGE_SHIFT # = <LargeFlags>{ <uint64_t>(1ull << 44) }
const LargeFlags LargeFlags_INVERTED # = <LargeFlags>{ <uint64_t>~(LargeFlags_LARGE_SHIFT).bits }
void root(AlignFlags flags, DebugFlags bigger_flags, LargeFlags largest_flags);
+1
View File
@@ -34,6 +34,7 @@ bitflags! {
pub struct LargeFlags: u64 {
/// Flag with a very large shift that usually would be narrowed.
const LARGE_SHIFT = 1u64 << 44;
const INVERTED = !Self::LARGE_SHIFT.bits;
}
}