Skip to content

Commit 4037468

Browse files
authored
[clang] Fix warnings related to enum in clang::PointerAuthQualifier (#75)
Due to location in clang/include/clang/AST/Type.h header, the following warnings cluttered the build log and made identifying other meaningful compiler messages hard. Warning 1: ``` /path/to/llvm-project/clang/include/clang/AST/Type.h:182:77: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 180 | static_assert((EnabledMask + AddressDiscriminatedMask + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | AuthenticationModeMask + IsaPointerMask + | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 182 | AuthenticatesNullValuesMask + KeyMask + DiscriminatorMask) == | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ 183 | 0xFFFFFFFF, | ~~~~~~~~~~ ``` Warning 2: ``` /path/to/llvm-project/clang/include/clang/AST/Type.h:196:38: warning: enumerated and non-enumerated type in conditional expression [-Wextra] 196 | (isAddressDiscriminated ? AddressDiscriminatedMask : 0) | | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
1 parent e5dc43f commit 4037468

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

clang/include/clang/AST/Type.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ using CanQualType = CanQual<Type>;
141141

142142
/// Pointer-authentication qualifiers.
143143
class PointerAuthQualifier {
144-
enum {
144+
enum : uint32_t {
145145
EnabledShift = 0,
146146
EnabledBits = 1,
147147
EnabledMask = 1 << EnabledShift,
@@ -165,7 +165,7 @@ class PointerAuthQualifier {
165165
KeyMask = ((1 << KeyBits) - 1) << KeyShift,
166166
DiscriminatorShift = KeyShift + KeyBits,
167167
DiscriminatorBits = 16,
168-
DiscriminatorMask = ((1 << DiscriminatorBits) - 1) << DiscriminatorShift,
168+
DiscriminatorMask = ((1u << DiscriminatorBits) - 1) << DiscriminatorShift,
169169
};
170170

171171
// bits: |0 |1 |2..3 |4 |5 |6..15| 16...31 |
@@ -193,7 +193,9 @@ class PointerAuthQualifier {
193193
PointerAuthenticationMode authenticationMode,
194194
bool isIsaPointer, bool authenticatesNullValues)
195195
: Data(EnabledMask |
196-
(isAddressDiscriminated ? AddressDiscriminatedMask : 0) |
196+
(isAddressDiscriminated
197+
? static_cast<uint32_t>(AddressDiscriminatedMask)
198+
: 0) |
197199
(key << KeyShift) |
198200
(unsigned(authenticationMode) << AuthenticationModeShift) |
199201
(extraDiscriminator << DiscriminatorShift) |

0 commit comments

Comments
 (0)