diff options
| author | Eugen Wissner <belka@caraus.de> | 2026-08-23 14:05:26 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2026-08-23 14:05:26 +0200 |
| commit | bf41d022ce9736a92097f416ab96fca7ab4594ca (patch) | |
| tree | 74813da62ec329f826828d2cac8701a94277dc41 /boot/symbol.cc | |
| parent | e4fece8e791cddec1c765c9834e1c13d0f258e16 (diff) | |
| download | elna-bf41d022ce9736a92097f416ab96fca7ab4594ca.tar.gz | |
Reject 0-sized variables
Diffstat (limited to 'boot/symbol.cc')
| -rw-r--r-- | boot/symbol.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/boot/symbol.cc b/boot/symbol.cc index fdf6a65..b32782e 100644 --- a/boot/symbol.cc +++ b/boot/symbol.cc @@ -55,6 +55,7 @@ namespace elna::boot template std::shared_ptr<constant_type> type::get<constant_type>() const; template std::shared_ptr<procedure_type> type::get<procedure_type>() const; template std::shared_ptr<enumeration_type> type::get<enumeration_type>() const; + template std::shared_ptr<extern_type> type::get<extern_type>() const; bool type::operator==(const std::nullptr_t&) const { @@ -80,6 +81,10 @@ namespace elna::boot { return left_enumeration == resolved_that.get<enumeration_type>(); } + if (auto left_extern = resolved_this.get<extern_type>()) + { + return left_extern == resolved_that.get<extern_type>(); + } if (auto left_pointer = resolved_this.get<pointer_type>()) { auto right_pointer = resolved_that.get<pointer_type>(); @@ -181,6 +186,10 @@ namespace elna::boot { return "(enumeration)"; } + else if constexpr (std::is_same_v<T, std::shared_ptr<extern_type>>) + { + return "extern"; + } }, payload); } |
