Replace label_text ctor with "borrow" and "take"
authorDavid Malcolm <dmalcolm@redhat.com>
Tue, 10 Dec 2019 02:02:38 +0000 (02:02 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Tue, 10 Dec 2019 02:02:38 +0000 (02:02 +0000)
commitd68f5d458d7df12b31d27094e8f7ed0208ccf693
treec30d686a52fa2b8eecdade9221ca87d28f6f4909
parentd3e28653fa2cd9ad8d5c6acb4bd182bd473c0995
Replace label_text ctor with "borrow" and "take"

libcpp's label_text class wraps a text buffer, along with a flag to
determine if it "owns" the buffer.

The existing ctor exposed this directly, but I found it difficult
to remember the sense of flag, so this patch hides the ctor, in
favor of static member functions "borrow" and "take", to make
the effect on ownership explicit in the name.

gcc/c-family/ChangeLog:
* c-format.c (range_label_for_format_type_mismatch::get_text):
Replace label_text ctor called with true with label_text::take.

gcc/c/ChangeLog:
* c-objc-common.c (range_label_for_type_mismatch::get_text):
Replace label_text ctor calls.

gcc/cp/ChangeLog:
* error.c (range_label_for_type_mismatch::get_text): Replace
label_text ctor calls with label_text::borrow.

gcc/ChangeLog:
* gcc-rich-location.c
(maybe_range_label_for_tree_type_mismatch::get_text): Replace
label_text ctor call with label_text::borrow.
* gcc-rich-location.h (text_range_label::get_text): Replace
label_text ctor called with false with label_text::borrow.

libcpp/ChangeLog:
* include/line-map.h (label_text::label_text): Make private.
(label_text::borrow): New.
(label_text::take): New.
(label_text::take_or_copy): New.

From-SVN: r279153
gcc/ChangeLog
gcc/c-family/ChangeLog
gcc/c-family/c-format.c
gcc/c/ChangeLog
gcc/c/c-objc-common.c
gcc/cp/ChangeLog
gcc/cp/error.c
gcc/gcc-rich-location.c
gcc/gcc-rich-location.h
libcpp/ChangeLog
libcpp/include/line-map.h