### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
// Begin of Foo (from "<...>/globals.hlt")
// Compiled by HILTI version X.X.X

#include <hilti/rt/compiler-setup.h>

#include <hilti/rt/libhilti.h>

extern uint64_t hlt_internal_hlto_scope;

namespace hlt_internal::Foo {
    struct _t_globals_t;
    struct _t_globals_t : ::hilti::rt::trait::isStruct, ::hilti::rt::Controllable<_t_globals_t> {
        std::string X{};

        std::string __to_string() const {
            return "["s + "$X=" + hilti::rt::to_string(X) + "]";
        }
    };

    inline unsigned int _t_globals_index;
    static inline auto _t_globals() { return ::hilti::rt::detail::moduleGlobals<_t_globals_t>(_t_globals_index); }
    extern void _t_init_globals(::hilti::rt::Context* ctx);
    extern void _t_init_module();
    extern void _t_register_module();
}

HILTI_PRE_INIT(hlt_internal::Foo::_t_register_module)

extern void hlt_internal::Foo::_t_init_globals(::hilti::rt::Context* ctx) {
    ::hilti::rt::detail::initModuleGlobals<_t_globals_t>(_t_globals_index);
    _t_globals()->X = {"Hello, world!"s};
}

extern void hlt_internal::Foo::_t_init_module() {
      ::hilti::rt::location("<...>/globals.hlt:16:1-16:15");
    ::hilti::rt::print(Foo::_t_globals()->X, &::hilti::rt::type_info::string, ::hilti::rt::Bool(true));
}

extern void hlt_internal::Foo::_t_register_module() {
    ::hilti::rt::Library::setScope(&hlt_internal_hlto_scope);
    ::hilti::rt::detail::registerModule({ "Foo", hlt_internal_hlto_scope, &_t_init_module, &_t_init_globals, nullptr, &_t_globals_index});
}

// Begin of __linker__
// Compiled by HILTI version X.X.X

#include <hilti/rt/compiler-setup.h>

// 
// Linker code generated for modules:
//   - Foo (<...>/globals.hlt)

#include <hilti/rt/libhilti.h>

const char HILTI_EXPORT HILTI_WEAK * hlt_internal_hlto_library_version = <...>
const char HILTI_EXPORT HILTI_WEAK * hlt_internal_hlto_bind_to_version = <...>
HILTI_HIDDEN uint64_t hlt_internal_hlto_scope = 0;

