class Assembler; class AssemblerBuffer; class AssemblerFixup;
namespace arm64 { class Arm64Assembler;
} // namespace arm64 namespace riscv64 { class Riscv64Assembler; class Riscv64Label;
} // namespace riscv64 namespace x86 { class X86Assembler; class NearLabel;
} // namespace x86 namespace x86_64 { class X86_64Assembler; class NearLabel;
} // namespace x86_64
Label(Label&& src) noexcept
: position_(src.position_) { // We must unlink/unbind the src label when moving; if not, calling the destructor on // the src label would fail.
src.position_ = 0;
}
~Label() { // Assert if label is being destroyed with unresolved branches pending.
CHECK(!IsLinked());
}
// Returns the position for bound and linked labels. Cannot be used // for unused labels. int Position() const {
CHECK(!IsUnused()); return IsBound() ? -position_ - sizeof(void*) : position_ - sizeof(void*);
}
int LinkPosition() const {
CHECK(IsLinked()); return position_ - sizeof(void*);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.