Skip to content

Commit 2b509ec

Browse files
committed
[AST] Reorder fields in FunctionTypeBitfields to avoid splitting a field across 32 bit boundary
Fixes #129521.
1 parent 87f837c commit 2b509ec

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

clang/include/clang/AST/Type.h

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1943,11 +1943,6 @@ class alignas(TypeAlignment) Type : public ExtQualsTypeCommonBase {
19431943
LLVM_PREFERRED_TYPE(TypeBitfields)
19441944
unsigned : NumTypeBits;
19451945

1946-
/// Extra information which affects how the function is called, like
1947-
/// regparm and the calling convention.
1948-
LLVM_PREFERRED_TYPE(CallingConv)
1949-
unsigned ExtInfo : 14;
1950-
19511946
/// The ref-qualifier associated with a \c FunctionProtoType.
19521947
///
19531948
/// This is a value of type \c RefQualifierKind.
@@ -1966,12 +1961,6 @@ class alignas(TypeAlignment) Type : public ExtQualsTypeCommonBase {
19661961
LLVM_PREFERRED_TYPE(bool)
19671962
unsigned HasExtQuals : 1;
19681963

1969-
/// The number of parameters this function has, not counting '...'.
1970-
/// According to [implimits] 8 bits should be enough here but this is
1971-
/// somewhat easy to exceed with metaprogramming and so we would like to
1972-
/// keep NumParams as wide as reasonably possible.
1973-
unsigned NumParams : FunctionTypeNumParamsWidth;
1974-
19751964
/// The type of exception specification this function has.
19761965
LLVM_PREFERRED_TYPE(ExceptionSpecificationType)
19771966
unsigned ExceptionSpecType : 4;
@@ -1991,6 +1980,17 @@ class alignas(TypeAlignment) Type : public ExtQualsTypeCommonBase {
19911980
/// Whether this function has a trailing return type.
19921981
LLVM_PREFERRED_TYPE(bool)
19931982
unsigned HasTrailingReturn : 1;
1983+
1984+
/// Extra information which affects how the function is called, like
1985+
/// regparm and the calling convention.
1986+
LLVM_PREFERRED_TYPE(CallingConv)
1987+
unsigned ExtInfo : 14;
1988+
1989+
/// The number of parameters this function has, not counting '...'.
1990+
/// According to [implimits] 8 bits should be enough here but this is
1991+
/// somewhat easy to exceed with metaprogramming and so we would like to
1992+
/// keep NumParams as wide as reasonably possible.
1993+
unsigned NumParams : FunctionTypeNumParamsWidth;
19941994
};
19951995

19961996
class ObjCObjectTypeBitfields {

0 commit comments

Comments
 (0)