@@ -73,35 +73,40 @@ enum Tag : uint16_t;
73
73
// / DISourceLanguageName may hold either of these.
74
74
// /
75
75
class DISourceLanguageName {
76
+ // / Language version. The version scheme is language
77
+ // / dependent.
78
+ uint32_t Version = 0 ;
79
+
76
80
// / Language name.
77
- // / If \ref Version is not std::nullopt , then this name
81
+ // / If \ref HasVersion is \c true , then this name
78
82
// / is version independent (i.e., doesn't include the language
79
83
// / version in its name).
80
84
uint16_t Name;
81
85
82
- // / Language version. The version scheme is language
83
- // / dependent .
84
- std::optional< uint32_t > Version ;
86
+ // / If \c true, then \ref Version is interpretable and \ref Name
87
+ // / is a version independent name .
88
+ bool HasVersion ;
85
89
86
90
public:
87
- bool hasVersionedName () const { return Version. has_value () ; }
91
+ bool hasVersionedName () const { return HasVersion ; }
88
92
89
93
// / Returns a versioned or unversioned language name.
90
94
uint16_t getName () const { return Name; }
91
95
92
- // Transitional API for cases where we do not yet support
93
- // versioned source language names. Use \ref getName instead.
94
- //
95
- // FIXME: remove once all callers of this API account for versioned
96
- // names.
96
+ // / Transitional API for cases where we do not yet support
97
+ // / versioned source language names. Use \ref getName instead.
98
+ // /
99
+ // / FIXME: remove once all callers of this API account for versioned
100
+ // / names.
97
101
uint16_t getUnversionedName () const {
98
102
assert (!hasVersionedName ());
99
103
return Name;
100
104
}
101
105
102
106
DISourceLanguageName (uint16_t Lang, uint32_t Version)
103
- : Name(Lang), Version(Version) {};
104
- DISourceLanguageName (uint16_t Lang) : Name(Lang), Version(std::nullopt ) {};
107
+ : Version(Version), Name(Lang), HasVersion(true ) {};
108
+ DISourceLanguageName (uint16_t Lang)
109
+ : Version(0 ), Name(Lang), HasVersion(false ) {};
105
110
};
106
111
107
112
class DbgVariableRecord ;
0 commit comments