• Home
  • Raw
  • Download

Lines Matching +full:- +full:out

1 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
2 // -*- Mode: C++ -*-
4 // Copyright (C) 2017-2022 Red Hat, Inc.
10 #include "abg-comparison-priv.h"
11 #include "abg-reporter-priv.h"
37 /// @param out the output stream to emit the numerical value to.
39 emit_num_value(uint64_t value, const diff_context& ctxt, ostream& out) in emit_num_value() argument
42 out << std::hex << std::showbase ; in emit_num_value()
44 out << std::dec; in emit_num_value()
45 out << value << std::dec << std::noshowbase; in emit_num_value()
90 /// @param out the output stream to send the change message to.
100 ostream& out, in show_numerical_change() argument
115 out << what << " changed from "; in show_numerical_change()
116 emit_num_value(o, ctxt, out); in show_numerical_change()
117 out << " to "; in show_numerical_change()
118 emit_num_value(n, ctxt, out); in show_numerical_change()
121 out << " (in "; in show_numerical_change()
122 out << bits_or_bytes; in show_numerical_change()
123 out << ")"; in show_numerical_change()
137 /// @param out the output stream to emit the message to.
142 ostream& out) in show_offset_or_size() argument
154 out << what << " "; in show_offset_or_size()
155 emit_num_value(v, ctxt, out); in show_offset_or_size()
156 out << " (in " << bits_or_bytes << ")"; in show_offset_or_size()
167 /// @param out the output stream to emit the message to.
171 ostream& out) in show_offset_or_size() argument
172 {show_offset_or_size("", value, ctxt, out);} in show_offset_or_size()
180 /// @param out the output stream to send the representation to
184 ostream& out) in represent() argument
193 out << "'" << mem_fn->get_pretty_representation() << "'"; in represent()
194 report_loc_info(meth, ctxt, out); in represent()
200 is_class_type(meth->get_type()->get_class_type())-> in represent()
202 if (voffset > -1) in represent()
204 out << ", virtual at voffset "; in represent()
206 ctxt, out); in represent()
207 out << "/"; in represent()
208 emit_num_value(biggest_voffset, ctxt, out); in represent()
213 && (mem_fn->get_symbol())) in represent()
215 out << " {" in represent()
216 << mem_fn->get_symbol()->get_id_string() in represent()
219 out << "\n"; in represent()
228 /// @param out the output stream to send the representation to
234 ostream& out, in represent_data_member() argument
241 out << indent in represent_data_member()
243 << d->get_pretty_representation(/*internal=*/false, in represent_data_member()
251 if (!is_union_type(d->get_scope())) in represent_data_member()
254 *ctxt, out); in represent_data_member()
255 report_loc_info(d, *ctxt, out); in represent_data_member()
257 out << "\n"; in represent_data_member()
268 /// 64 bits then the string emitted is going to be "by -64 bits".
270 /// This function is a sub-routine used by the reporting system.
277 /// @param out the output stream to emit the string to.
281 ostream& out) in maybe_show_relative_offset_change() argument
286 var_decl_sptr o = diff->first_var(); in maybe_show_relative_offset_change()
287 var_decl_sptr n = diff->second_var(); in maybe_show_relative_offset_change()
297 change = second_offset - first_offset; in maybe_show_relative_offset_change()
301 sign = "-"; in maybe_show_relative_offset_change()
302 change = first_offset - second_offset; in maybe_show_relative_offset_change()
314 out << " (by " << sign; in maybe_show_relative_offset_change()
315 emit_num_value(change, ctxt, out); in maybe_show_relative_offset_change()
316 out << " " << bits_or_bytes << ")"; in maybe_show_relative_offset_change()
327 /// bits then the string emitted is going to be "by -64 bits".
329 /// This function is a sub-routine used by the reporting system.
336 /// @param out the output stream to emit the string to.
340 ostream& out) in maybe_show_relative_size_change() argument
345 var_decl_sptr o = diff->first_var(); in maybe_show_relative_size_change()
346 var_decl_sptr n = diff->second_var(); in maybe_show_relative_size_change()
356 change = second_size - first_size; in maybe_show_relative_size_change()
360 sign = "-"; in maybe_show_relative_size_change()
361 change = first_size - second_size; in maybe_show_relative_size_change()
373 out << " (by " << sign; in maybe_show_relative_size_change()
374 emit_num_value(change, ctxt, out); in maybe_show_relative_size_change()
375 out << " " << bits_or_bytes << ")"; in maybe_show_relative_size_change()
387 /// @param out the output stream to send the representation to.
393 ostream& out, in represent() argument
397 if (!ctxt->get_reporter()->diff_to_be_reported(diff.get())) in represent()
400 const var_decl_sptr o = diff->first_var(); in represent()
401 const var_decl_sptr n = diff->second_var(); in represent()
405 const string o_name = o->get_qualified_name(); in represent()
406 const string n_name = n->get_qualified_name(); in represent()
412 o->get_pretty_representation(/*internal=*/false, /*qualified_name=*/false); in represent()
414 const bool show_size_offset_changes = ctxt->get_allowed_category() in represent()
424 //---------------------------------------------------------------- in represent()
435 //---------------------------------------------------------------- in represent()
440 n->get_pretty_representation(/*internal=*/false, in represent()
442 const type_base_sptr o_type = o->get_type(), n_type = n->get_type(); in represent()
446 o_offset, *ctxt, out); in represent()
448 out << " changed from:\n" in represent()
458 && is_decl(o_type)->get_is_anonymous() in represent()
459 && is_decl(n_type)->get_is_anonymous()) in represent()
461 out << indent << "while looking at anonymous data member '" in represent()
479 // So we are looking at a non-anonymous data member change from in represent()
482 n->get_pretty_representation(/*internal=*/false, in represent()
484 out << indent << (o_anon ? "anonymous " : "") in represent()
486 show_offset_or_size(" at offset", o_offset, *ctxt, out); in represent()
487 out << " became " << (n_anon ? "anonymous " : "") in represent()
503 if (const diff_sptr d = diff->type_diff()) in represent()
505 if (ctxt->get_reporter()->diff_to_be_reported(d.get())) in represent()
508 out << indent << "type '" in represent()
509 << get_pretty_representation(o->get_type()) in represent()
513 : o->get_qualified_name()) in represent()
516 out << indent in represent()
520 if (d->currently_reporting()) in represent()
521 out << ", as being reported\n"; in represent()
522 else if (d->reported_once()) in represent()
523 out << ", as reported earlier\n"; in represent()
526 out << ":\n"; in represent()
527 d->report(out, indent + " "); in represent()
544 && !(ctxt->get_allowed_category() in represent()
551 out << indent << "and "; in represent()
555 out << indent; in represent()
557 out << ", "; in represent()
558 out << "name of '" << o_name << "' changed to '" << n_name << "'"; in represent()
559 report_loc_info(n, *ctxt, out); in represent()
569 out << indent << "and "; in represent()
573 out << indent << "'" << o_pretty_representation << "' "; in represent()
575 out << ", "; in represent()
577 out << "is no more laid out"; in represent()
579 out << "now becomes laid out"; in represent()
588 out << indent << "and "; in represent()
593 out << indent; in represent()
595 out << "anonymous data member "; in represent()
596 out << "'" << o_pretty_representation << "' "; in represent()
599 out << ", "; in represent()
601 show_numerical_change("offset", o_offset, n_offset, *ctxt, out); in represent()
602 maybe_show_relative_offset_change(diff, *ctxt, out); in represent()
610 out << indent << "and "; in represent()
615 out << indent; in represent()
617 out << "anonymous data member "; in represent()
618 out << "'" << o_pretty_representation << "' "; in represent()
621 out << ", "; in represent()
623 show_numerical_change("size", o_size, n_size, *ctxt, out); in represent()
624 maybe_show_relative_size_change(diff, *ctxt, out); in represent()
628 if (o->get_binding() != n->get_binding()) in represent()
632 out << indent << "and "; in represent()
636 out << indent << "'" << o_pretty_representation << "' "; in represent()
638 out << ", "; in represent()
639 out << "elf binding changed from " << o->get_binding() in represent()
640 << " to " << n->get_binding(); in represent()
643 if (o->get_visibility() != n->get_visibility()) in represent()
647 out << indent << "and "; in represent()
651 out << indent << "'" << o_pretty_representation << "' "; in represent()
653 out << ", "; in represent()
654 out << "visibility changed from " << o->get_visibility() in represent()
655 << " to " << n->get_visibility(); in represent()
658 if ((ctxt->get_allowed_category() & ACCESS_CHANGE_CATEGORY) in represent()
664 out << indent << "and "; in represent()
668 out << indent << "'" << o_pretty_representation << "' "; in represent()
670 out << ", "; in represent()
672 out << "access changed from '" in represent()
683 out << indent << "and "; in represent()
687 out << indent << "'" << o_pretty_representation << "' "; in represent()
689 out << ", "; in represent()
692 out << "is no more static"; in represent()
694 out << "now becomes static"; in represent()
703 out << indent << "'" << o_pretty_representation in represent()
704 << "' has *some* difference - please report as a bug"; in represent()
712 out << "\n"; in represent()
723 /// @param out the output stream to report the change to.
730 ostream& out, in report_size_and_alignment_changes() argument
744 // declaration-only form of the second. The declaration-only class in report_size_and_alignment_changes()
749 unsigned fs = f->get_size_in_bits(), ss = s->get_size_in_bits(), in report_size_and_alignment_changes()
750 fa = f->get_alignment_in_bits(), sa = s->get_alignment_in_bits(); in report_size_and_alignment_changes()
753 unsigned fdc = first_array ? first_array->get_dimension_count(): 0, in report_size_and_alignment_changes()
754 sdc = second_array ? second_array->get_dimension_count(): 0; in report_size_and_alignment_changes()
756 if (ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) in report_size_and_alignment_changes()
764 out << indent << "array type size changed from "; in report_size_and_alignment_changes()
765 if (first_array->is_infinite()) in report_size_and_alignment_changes()
766 out << "infinity"; in report_size_and_alignment_changes()
768 emit_num_value(first_array->get_size_in_bits(), *ctxt, out); in report_size_and_alignment_changes()
769 out << " to "; in report_size_and_alignment_changes()
770 if (second_array->is_infinite()) in report_size_and_alignment_changes()
771 out << "infinity"; in report_size_and_alignment_changes()
773 emit_num_value(second_array->get_size_in_bits(), *ctxt, out); in report_size_and_alignment_changes()
774 out << "\n"; in report_size_and_alignment_changes()
778 out << indent + " " in report_size_and_alignment_changes()
786 for (i = first_array->get_subranges().begin(), in report_size_and_alignment_changes()
787 j = second_array->get_subranges().begin(); in report_size_and_alignment_changes()
788 (i != first_array->get_subranges().end() in report_size_and_alignment_changes()
789 && j != second_array->get_subranges().end()); in report_size_and_alignment_changes()
792 if ((*i)->get_length() != (*j)->get_length()) in report_size_and_alignment_changes()
794 out << indent in report_size_and_alignment_changes()
796 << i - first_array->get_subranges().begin() + 1 in report_size_and_alignment_changes()
799 if ((*i)->is_infinite()) in report_size_and_alignment_changes()
800 out << "infinity"; in report_size_and_alignment_changes()
802 out << (*i)->get_length(); in report_size_and_alignment_changes()
804 out << " to "; in report_size_and_alignment_changes()
806 if ((*j)->is_infinite()) in report_size_and_alignment_changes()
807 out << "infinity"; in report_size_and_alignment_changes()
809 out << (*j)->get_length(); in report_size_and_alignment_changes()
810 out << "\n"; in report_size_and_alignment_changes()
816 out << indent; in report_size_and_alignment_changes()
817 show_numerical_change("type size", fs, ss, *ctxt, out); in report_size_and_alignment_changes()
818 out << "\n"; in report_size_and_alignment_changes()
822 if (ctxt->show_relative_offset_changes()) in report_size_and_alignment_changes()
824 out << indent << "type size hasn't changed\n"; in report_size_and_alignment_changes()
827 if ((ctxt->get_allowed_category() & SIZE_OR_OFFSET_CHANGE_CATEGORY) in report_size_and_alignment_changes()
830 out << indent; in report_size_and_alignment_changes()
831 show_numerical_change("type alignment", fa, sa, *ctxt, out, in report_size_and_alignment_changes()
833 out << "\n"; in report_size_and_alignment_changes()
841 /// @param out the output stream to report the change to.
847 ostream &out) in report_loc_info() argument
860 if (tu && (loc = decl->get_location())) in report_loc_info()
866 //tu->get_loc_mgr().expand_location(loc, path, line, column); in report_loc_info()
869 out << " at " << path << ":" << line << ":" << column; in report_loc_info()
884 /// @param out the output stream to report the change to.
891 ostream& out, in report_name_size_and_alignment_changes() argument
894 string fn = first->get_qualified_name(), in report_name_size_and_alignment_changes()
895 sn = second->get_qualified_name(); in report_name_size_and_alignment_changes()
899 if (!(ctxt->get_allowed_category() & HARMLESS_DECL_NAME_CHANGE_CATEGORY) in report_name_size_and_alignment_changes()
906 out << indent; in report_name_size_and_alignment_changes()
908 out << "type"; in report_name_size_and_alignment_changes()
910 out << "declaration"; in report_name_size_and_alignment_changes()
911 out << " name changed from '" << fn << "' to '" << sn << "'"; in report_name_size_and_alignment_changes()
912 out << "\n"; in report_name_size_and_alignment_changes()
916 report_size_and_alignment_changes(first, second, ctxt, out, indent); in report_name_size_and_alignment_changes()
923 /// @param out the output stream to output the report to.
933 /// @param section_name the name of the sub-part of the class to
939 report_mem_header(ostream& out, in report_mem_header() argument
946 size_t net_number = number - num_filtered; in report_mem_header()
966 out << indent << "no " << section_name << " " << change; in report_mem_header()
970 out << indent << "1 " << section_name << " " << change; in report_mem_header()
972 out << indent << net_number << " " << section_name in report_mem_header()
976 out << " (" << num_filtered << " filtered)"; in report_mem_header()
977 out << colon_or_semi_colon << "\n"; in report_mem_header()
984 /// @param out the output stream to output the report to.
989 /// @param section_name the name of the sub-part of the class to
995 report_mem_header(ostream& out, in report_mem_header() argument
1016 out << indent << "there are " << section_name << " " << change << ":\n"; in report_mem_header()
1019 /// Report the differences in access specifiers and static-ness for
1026 /// @param out the output stream to send the report to.
1035 ostream& out, in maybe_report_diff_for_member() argument
1043 string decl1_repr = decl1->get_pretty_representation(), in maybe_report_diff_for_member()
1044 decl2_repr = decl2->get_pretty_representation(); in maybe_report_diff_for_member()
1049 out << indent << "'" << decl1_repr << "' "; in maybe_report_diff_for_member()
1050 if (report_loc_info(decl2, *ctxt, out)) in maybe_report_diff_for_member()
1051 out << " "; in maybe_report_diff_for_member()
1053 out << "became non-static"; in maybe_report_diff_for_member()
1055 out << "became static"; in maybe_report_diff_for_member()
1056 out << "\n"; in maybe_report_diff_for_member()
1059 if ((ctxt->get_allowed_category() & ACCESS_CHANGE_CATEGORY) in maybe_report_diff_for_member()
1063 out << indent << "'" << decl1_repr << "' access changed from '" in maybe_report_diff_for_member()
1088 ostream& out, in maybe_report_diff_for_symbol() argument
1094 if (symbol1->get_size() != symbol2->get_size()) in maybe_report_diff_for_symbol()
1096 out << indent; in maybe_report_diff_for_symbol()
1098 symbol1->get_size(), in maybe_report_diff_for_symbol()
1099 symbol2->get_size(), in maybe_report_diff_for_symbol()
1100 *ctxt, out, in maybe_report_diff_for_symbol()
1102 out << "\n"; in maybe_report_diff_for_symbol()
1105 if (symbol1->get_name() != symbol2->get_name()) in maybe_report_diff_for_symbol()
1107 out << indent << "symbol name changed from " in maybe_report_diff_for_symbol()
1108 << symbol1->get_name() in maybe_report_diff_for_symbol()
1110 << symbol2->get_name() in maybe_report_diff_for_symbol()
1114 if (symbol1->get_type() != symbol2->get_type()) in maybe_report_diff_for_symbol()
1116 out << indent << "symbol type changed from '" in maybe_report_diff_for_symbol()
1117 << symbol1->get_type() in maybe_report_diff_for_symbol()
1119 << symbol2->get_type() in maybe_report_diff_for_symbol()
1123 if (symbol1->is_public() != symbol2->is_public()) in maybe_report_diff_for_symbol()
1125 out << indent << "symbol became "; in maybe_report_diff_for_symbol()
1126 if (symbol2->is_public()) in maybe_report_diff_for_symbol()
1127 out << "exported"; in maybe_report_diff_for_symbol()
1129 out << "non-exported"; in maybe_report_diff_for_symbol()
1130 out << "\n"; in maybe_report_diff_for_symbol()
1133 if (symbol1->is_defined() != symbol2->is_defined()) in maybe_report_diff_for_symbol()
1135 out << indent << "symbol became "; in maybe_report_diff_for_symbol()
1136 if (symbol2->is_defined()) in maybe_report_diff_for_symbol()
1137 out << "defined"; in maybe_report_diff_for_symbol()
1139 out << "undefined"; in maybe_report_diff_for_symbol()
1140 out << "\n"; in maybe_report_diff_for_symbol()
1143 if (symbol1->get_version() != symbol2->get_version()) in maybe_report_diff_for_symbol()
1145 out << indent << "symbol version changed from " in maybe_report_diff_for_symbol()
1146 << symbol1->get_version().str() in maybe_report_diff_for_symbol()
1148 << symbol2->get_version().str() in maybe_report_diff_for_symbol()
1152 const abg_compat::optional<uint32_t>& crc1 = symbol1->get_crc(); in maybe_report_diff_for_symbol()
1153 const abg_compat::optional<uint32_t>& crc2 = symbol2->get_crc(); in maybe_report_diff_for_symbol()
1157 out << indent << "CRC (modversions) changed from " in maybe_report_diff_for_symbol()
1160 out << crc1.value(); in maybe_report_diff_for_symbol()
1162 out << none; in maybe_report_diff_for_symbol()
1163 out << " to "; in maybe_report_diff_for_symbol()
1165 out << crc2.value(); in maybe_report_diff_for_symbol()
1167 out << none; in maybe_report_diff_for_symbol()
1168 out << std::noshowbase << std::dec in maybe_report_diff_for_symbol()
1172 const abg_compat::optional<std::string>& ns1 = symbol1->get_namespace(); in maybe_report_diff_for_symbol()
1173 const abg_compat::optional<std::string>& ns2 = symbol2->get_namespace(); in maybe_report_diff_for_symbol()
1177 out << indent << "namespace changed from "; in maybe_report_diff_for_symbol()
1179 out << "'" << ns1.value() << "'"; in maybe_report_diff_for_symbol()
1181 out << none; in maybe_report_diff_for_symbol()
1182 out << " to "; in maybe_report_diff_for_symbol()
1184 out << "'" << ns2.value() << "'"; in maybe_report_diff_for_symbol()
1186 out << none; in maybe_report_diff_for_symbol()
1187 out << "\n"; in maybe_report_diff_for_symbol()
1194 /// @param out the output string to emit the resulting string to.
1204 show_linkage_name_and_aliases(ostream& out, in show_linkage_name_and_aliases() argument
1209 out << indent << symbol.get_id_string(); in show_linkage_name_and_aliases()
1214 out << ", aliases " << aliases; in show_linkage_name_and_aliases()
1229 /// @param out the output stream to emit the report to.
1234 ostream& out) in maybe_report_unreachable_type_changes() argument
1238 if (!(ctxt->show_unreachable_types() in maybe_report_unreachable_type_changes()
1239 && (!d.priv_->deleted_unreachable_types_.empty() in maybe_report_unreachable_type_changes()
1240 || !d.priv_->added_unreachable_types_.empty() in maybe_report_unreachable_type_changes()
1241 || !d.priv_->changed_unreachable_types_.empty()))) in maybe_report_unreachable_type_changes()
1248 out << indent in maybe_report_unreachable_type_changes()
1251 out << indent in maybe_report_unreachable_type_changes()
1256 sort_string_type_base_sptr_map(d.priv_->deleted_unreachable_types_, in maybe_report_unreachable_type_changes()
1264 if (d.priv_->deleted_unreachable_type_is_suppressed((*i).get())) in maybe_report_unreachable_type_changes()
1267 out << indent << " [D] '" << get_pretty_representation(*i) << "'"; in maybe_report_unreachable_type_changes()
1268 report_loc_info(*i, *ctxt, out); in maybe_report_unreachable_type_changes()
1269 out << "\n"; in maybe_report_unreachable_type_changes()
1273 out << "\n"; in maybe_report_unreachable_type_changes()
1277 out << indent in maybe_report_unreachable_type_changes()
1280 out << indent in maybe_report_unreachable_type_changes()
1285 sort_string_diff_sptr_map(d.priv_->changed_unreachable_types_, in maybe_report_unreachable_type_changes()
1292 if (!diff || !diff->to_be_reported()) in maybe_report_unreachable_type_changes()
1295 string repr = diff->first_subject()->get_pretty_representation(); in maybe_report_unreachable_type_changes()
1297 out << indent << " [C] '" << repr << "' changed:\n"; in maybe_report_unreachable_type_changes()
1298 diff->report(out, indent + " "); in maybe_report_unreachable_type_changes()
1300 out << "\n"; in maybe_report_unreachable_type_changes()
1306 out << indent in maybe_report_unreachable_type_changes()
1309 out << indent in maybe_report_unreachable_type_changes()
1314 sort_string_type_base_sptr_map(d.priv_->added_unreachable_types_, in maybe_report_unreachable_type_changes()
1322 if (d.priv_->added_unreachable_type_is_suppressed((*i).get())) in maybe_report_unreachable_type_changes()
1325 out << indent << " [A] '" << get_pretty_representation(*i) << "'"; in maybe_report_unreachable_type_changes()
1326 report_loc_info(*i, *ctxt, out); in maybe_report_unreachable_type_changes()
1327 out << "\n"; in maybe_report_unreachable_type_changes()
1331 out << "\n"; in maybe_report_unreachable_type_changes()
1339 /// @param out the output stream to report to.
1344 ostream &out, in maybe_report_interfaces_impacted_by_diff() argument
1347 const diff_context_sptr &ctxt = d->context(); in maybe_report_interfaces_impacted_by_diff()
1348 const corpus_diff_sptr &corp_diff = ctxt->get_corpus_diff(); in maybe_report_interfaces_impacted_by_diff()
1352 if (!ctxt->show_impacted_interfaces()) in maybe_report_interfaces_impacted_by_diff()
1355 const diff_maps &maps = corp_diff->get_leaf_diffs(); in maybe_report_interfaces_impacted_by_diff()
1361 if (impacted_artifacts->empty()) in maybe_report_interfaces_impacted_by_diff()
1367 size_t num_impacted_interfaces = impacted_artifacts->size(); in maybe_report_interfaces_impacted_by_diff()
1369 out << indent << "one impacted interface:\n"; in maybe_report_interfaces_impacted_by_diff()
1371 out << indent << num_impacted_interfaces << " impacted interfaces:\n"; in maybe_report_interfaces_impacted_by_diff()
1379 out << cur_indent << get_pretty_representation(*it) << "\n"; in maybe_report_interfaces_impacted_by_diff()
1388 /// @param out the output stream to report to.
1393 ostream &out, in maybe_report_interfaces_impacted_by_diff() argument
1395 {return maybe_report_interfaces_impacted_by_diff(d.get(), out, indent);} in maybe_report_interfaces_impacted_by_diff()
1404 {return d && d->to_be_reported();} in diff_to_be_reported()
1407 /// without changing the overall bit-layout of the class or union in
1408 /// an ABI-meaningful way.
1412 /// @param out the output stream to emit the change report to.
1417 ostream &out, in maybe_report_data_members_replaced_by_anon_dm() argument
1422 if ((ctxt->get_allowed_category() & HARMLESS_DATA_MEMBER_CHANGE_CATEGORY) in maybe_report_data_members_replaced_by_anon_dm()
1435 dms_replaced_by_same_anon_dm.push_back(i->first); in maybe_report_data_members_replaced_by_anon_dm()
1438 var_decl_sptr anonymous_data_member = i->second; in maybe_report_data_members_replaced_by_anon_dm()
1444 && *i->second == *anonymous_data_member; in maybe_report_data_members_replaced_by_anon_dm()
1446 dms_replaced_by_same_anon_dm.push_back(i->first); in maybe_report_data_members_replaced_by_anon_dm()
1451 out << indent << "data member"; in maybe_report_data_members_replaced_by_anon_dm()
1453 out << "s"; in maybe_report_data_members_replaced_by_anon_dm()
1461 string name = (*it)->get_qualified_name(); in maybe_report_data_members_replaced_by_anon_dm()
1463 out << ","; in maybe_report_data_members_replaced_by_anon_dm()
1464 out << " '" << name << "'"; in maybe_report_data_members_replaced_by_anon_dm()
1469 out << " were "; in maybe_report_data_members_replaced_by_anon_dm()
1471 out << " was "; in maybe_report_data_members_replaced_by_anon_dm()
1473 out << "replaced by anonymous data member:\n" in maybe_report_data_members_replaced_by_anon_dm()
1476 << anonymous_data_member->get_pretty_representation() in maybe_report_data_members_replaced_by_anon_dm()
1482 /// Report about the base classes of a class having been re-ordered.
1486 /// @param out the output stream to report the change to.
1491 ostream &out, in maybe_report_base_class_reordering() argument
1500 ABG_ASSERT(!first->get_base_specifiers().empty()); in maybe_report_base_class_reordering()
1501 ABG_ASSERT(!second->get_base_specifiers().empty()); in maybe_report_base_class_reordering()
1503 out << indent << "base classes of '" in maybe_report_base_class_reordering()
1504 << first->get_pretty_representation() in maybe_report_base_class_reordering()
1505 << "' are re-ordered from: "; in maybe_report_base_class_reordering()
1512 out << " to: "; in maybe_report_base_class_reordering()
1513 out << "'"; in maybe_report_base_class_reordering()
1515 for (auto &b : klass->get_base_specifiers()) in maybe_report_base_class_reordering()
1518 out << ", "; in maybe_report_base_class_reordering()
1519 if (b->get_is_virtual()) in maybe_report_base_class_reordering()
1520 out << "virtual "; in maybe_report_base_class_reordering()
1521 out << b->get_base_class()->get_qualified_name(); in maybe_report_base_class_reordering()
1524 out << "'"; in maybe_report_base_class_reordering()
1528 out << "\n"; in maybe_report_base_class_reordering()