[lldb] Specify unsigned underlying type for an enumeration explicitly

The enumeration EntryType is used as a bit field of DebugMacroEntry:
```
  EntryType m_type : 3
```

Since underlying type of enumeration is implementation-dependent, a signed integer is
converted to the 3-bit value by some compilers (MSVC).

That's why a DebugMacroEntry instance that was created with EntryType value > 3 (END_FILE or INDIRECT)
contains incorrect negative value in its m_type data-member.
This commit is contained in:
Tatyana Krasnukha 2019-12-26 15:48:50 +03:00
parent b0469eede2
commit e2d3eb00cc
1 changed files with 3 additions and 1 deletions

View File

@ -23,7 +23,9 @@ typedef std::shared_ptr<DebugMacros> DebugMacrosSP;
class DebugMacroEntry { class DebugMacroEntry {
public: public:
enum EntryType { INVALID, DEFINE, UNDEF, START_FILE, END_FILE, INDIRECT }; enum EntryType : uint32_t {
INVALID, DEFINE, UNDEF, START_FILE, END_FILE, INDIRECT
};
public: public:
static DebugMacroEntry CreateDefineEntry(uint32_t line, const char *str); static DebugMacroEntry CreateDefineEntry(uint32_t line, const char *str);