Lines Matching refs:Label

73 // A Label represents a value not yet known that we need to store in a
91 // Label a; // a's value is undefined
92 // Label b; // b's value is undefined
94 // Label c = a + 4; // okay, even though a's value is unknown
97 // Label d = b - 2; // okay; d == a+6, even though c is gone
105 // Label objects' lifetimes are unconstrained: notice that, in the
108 // particular, it's not necessary to ensure that a Label lives beyond
110 class Label {
112 Label(); // An undefined label.
113 Label(uint64_t value); // A label with a fixed value
114 Label(const Label &value); // A label equal to another.
115 ~Label();
121 // Label + size_t becomes ambigious, because it can't decide whether
122 // to convert the Label to a uint64_t and then to a size_t, or use
127 Label &operator=(uint64_t value);
128 Label &operator=(const Label &value);
129 Label operator+(uint64_t addend) const;
130 Label operator-(uint64_t subtrahend) const;
131 uint64_t operator-(const Label &subtrahend) const;
149 // Label l, m;
158 bool IsKnownOffsetFrom(const Label &label, uint64_t *offset_p = NULL) const;
236 inline Label operator+(uint64_t a, const Label &l) { return l + a; }
237 // Note that int-Label isn't defined, as negating a Label is not an
311 Section &Append(Endianness endianness, size_t size, const Label &label);
361 Section &L8(const Label &label), &L16(const Label &label),
362 &L32(const Label &label), &L64(const Label &label),
363 &B8(const Label &label), &B16(const Label &label),
364 &B32(const Label &label), &B64(const Label &label),
365 &D8(const Label &label), &D16(const Label &label),
366 &D32(const Label &label), &D64(const Label &label);
384 // Note that VALUE cannot be a Label (we would have to implement
400 // Note that VALUE cannot be a Label (we would have to implement
432 Label start() const { return start_; }
436 Label Here() const { return start_ + Size(); }
439 Section &Mark(Label *label) { *label = Here(); return *this; }
451 const Label &set_label)
465 Label label;
478 Label start_;