@@ -33,17 +33,6 @@ using UnqualifiedName = llvm::SmallString<16>;
33
33
// Info for functions.
34
34
struct FunctionInfo : SymbolInfo
35
35
{
36
- static constexpr InfoType type_id = InfoType::IT_function;
37
-
38
- explicit
39
- FunctionInfo (
40
- SymbolID id_ = SymbolID())
41
- : SymbolInfo(InfoType::IT_function, id_)
42
- {
43
- }
44
-
45
- void merge (FunctionInfo&& I);
46
-
47
36
bool IsMethod = false ; // Indicates whether this function is a class method.
48
37
Reference Parent; // Reference to the parent class decl for this method.
49
38
TypeInfo ReturnType; // Info about the return type of this function.
@@ -60,6 +49,33 @@ struct FunctionInfo : SymbolInfo
60
49
61
50
// When present, this function is a template or specialization.
62
51
llvm::Optional<TemplateInfo> Template;
52
+
53
+ StorageClass storageClass = SC_None;
54
+ RefQualifierKind refQualifier = RQ_None;
55
+
56
+ bool isConst : 1 = false ;
57
+ bool isConsteval : 1 = false ;
58
+ bool isConstexpr : 1 = false ;
59
+ bool isInline : 1 = false ;
60
+ bool isNoExcept : 1 = false ;
61
+ bool isSpecialMember : 1 = false ; // dtor, move/copy construct or assign
62
+ bool isTrailingReturn : 1 = false ;
63
+ bool isVariadic : 1 = false ; // has a C-style "..." variadic
64
+ bool isVirtual : 1 = false ;
65
+ bool isVolatile : 1 = false ;
66
+
67
+ // --------------------------------------------
68
+
69
+ static constexpr InfoType type_id = InfoType::IT_function;
70
+
71
+ explicit
72
+ FunctionInfo (
73
+ SymbolID id_ = SymbolID())
74
+ : SymbolInfo(InfoType::IT_function, id_)
75
+ {
76
+ }
77
+
78
+ void merge (FunctionInfo&& I);
63
79
};
64
80
65
81
// ------------------------------------------------
0 commit comments