From patchwork Fri Mar 27 14:00:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Giuliano Procida X-Patchwork-Id: 39065 From: gprocida@google.com (Giuliano Procida) Date: Fri, 27 Mar 2020 14:00:13 +0000 Subject: [PATCH 3/7] abidiff: Fix enum impacted interfaces blank line. In-Reply-To: <20200327140017.1917-1-gprocida@google.com> References: <20200327140017.1917-1-gprocida@google.com> Message-ID: <20200327140017.1917-4-gprocida@google.com> There was a spurious new line at the end of reporting enum diffs, before reporting impacted interfaces, if requested. * src/abg-default-reporter.cc (report): In the enum_diff overload, don't emit a blank line before a possible "impacted interfaces" stanza. In the class_or_union overload, change a stray conditional to use the emitted state variable for consistency. * tests/data/test*report*.txt: Remove blank lines after enum diffs in 17 files. Signed-off-by: Giuliano Procida --- src/abg-default-reporter.cc | 4 +--- tests/data/test-abidiff/test-enum0-report.txt | 1 - tests/data/test-abidiff/test-enum1-report.txt | 1 - .../data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt | 7 ------- tests/data/test-diff-dwarf/test15-enum-report.txt | 1 - tests/data/test-diff-filter/test19-enum-report-1.txt | 1 - .../test-diff-filter/test30-pr18904-rvalueref-report0.txt | 1 - .../test-diff-filter/test30-pr18904-rvalueref-report1.txt | 1 - .../test-diff-filter/test30-pr18904-rvalueref-report2.txt | 1 - .../test-diff-filter/test31-pr18535-libstdc++-report-0.txt | 1 - .../test-diff-filter/test31-pr18535-libstdc++-report-1.txt | 1 - .../test35-pr18754-no-added-syms-report-0.txt | 1 - .../test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt | 4 ---- ...r-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt | 1 - ...r-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt | 1 - ...r-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt | 1 - ...r-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt | 1 - ...c22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt | 1 - ...c22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt | 1 - .../test-diff-suppr/test41-enumerator-changes-report-0.txt | 2 -- 20 files changed, 1 insertion(+), 32 deletions(-) diff --git a/src/abg-default-reporter.cc b/src/abg-default-reporter.cc index b67fe259..1c39b3b2 100644 --- a/src/abg-default-reporter.cc +++ b/src/abg-default-reporter.cc @@ -170,8 +170,6 @@ default_reporter::report(const enum_diff& d, ostream& out, } } - out << "\n"; - if (d.context()->show_leaf_changes_only()) maybe_report_interfaces_impacted_by_diff(&d, out, indent); @@ -979,7 +977,7 @@ default_reporter::report(const class_or_union_diff& d, diff->report(out, indent + " "); emitted = true; } - if (numchanges) + if (emitted) out << "\n"; } diff --git a/tests/data/test-abidiff/test-enum0-report.txt b/tests/data/test-abidiff/test-enum0-report.txt index 1cd7eaaf..e6aad7aa 100644 --- a/tests/data/test-abidiff/test-enum0-report.txt +++ b/tests/data/test-abidiff/test-enum0-report.txt @@ -5,7 +5,6 @@ 'E::e2' value '1' 1 enumerator insertion: 'E::e1' value '1' - 1 changed declaration: 'function void foo(E)' was changed to 'function void foo(E)': parameter 1 of type 'enum E' has sub-type changes: diff --git a/tests/data/test-abidiff/test-enum1-report.txt b/tests/data/test-abidiff/test-enum1-report.txt index 7e8acf80..ab13895c 100644 --- a/tests/data/test-abidiff/test-enum1-report.txt +++ b/tests/data/test-abidiff/test-enum1-report.txt @@ -5,7 +5,6 @@ 'E::e1' value '1' 1 enumerator change: 'E::e2' from value '1' to '2' - 1 changed declaration: 'function void foo(E)' was changed to 'function void foo(E)': parameter 1 of type 'enum E' has sub-type changes: diff --git a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt index 8a13f3b3..dfb63684 100644 --- a/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt +++ b/tests/data/test-diff-dwarf/PR25058-liblttng-ctl-report-1.txt @@ -95,7 +95,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables 2 enumerator insertions: 'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL' value '20' 'lttng_event_context_type::LTTNG_EVENT_CONTEXT_CALLSTACK_USER' value '21' - type of 'union {lttng_event_perf_counter_ctx perf_counter; struct {char* provider_name; char* ctx_name;} app_ctx; char padding[288];} lttng_event_context::u' changed: type name changed from '__anonymous_union__4' to '__anonymous_union__5' type size hasn't changed @@ -116,7 +115,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOING' value '103' 'lttng_condition_type::LTTNG_CONDITION_TYPE_SESSION_ROTATION_COMPLETED' value '104' - [C] 'function int lttng_disable_event_ext(lttng_handle*, lttng_event*, const char*, const char*)' has some indirect sub-type changes: parameter 2 of type 'lttng_event*' has sub-type changes: in pointed to type 'struct lttng_event': @@ -127,7 +125,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables 1 enumerator insertion: 'lttng_event_type::LTTNG_EVENT_USERSPACE_PROBE' value '6' - [C] 'function int lttng_enable_event(lttng_handle*, lttng_event*, const char*)' has some indirect sub-type changes: parameter 2 of type 'lttng_event*' has sub-type changes: pointed to type 'struct lttng_event' changed, as reported earlier @@ -195,7 +192,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables type size hasn't changed 1 enumerator insertion: 'lttng_notification_channel_status::LTTNG_NOTIFICATION_CHANNEL_STATUS_INTERRUPTED' value '2' - parameter 2 of type 'lttng_notification**' has sub-type changes: in pointed to type 'lttng_notification*': in pointed to type 'struct lttng_notification': @@ -249,7 +245,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables type size hasn't changed 1 enumerator insertion: 'ast_link_type::AST_LINK_BRACKET' value '3' - type of 'ast_link_type pre_op' changed: details were reported earlier type of 'union {char* string; uint64_t constant; double float_constant; char* identifier; filter_node* child;} u' changed: @@ -282,7 +277,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables 'op_type::AST_OP_BIT_AND' value '10' 'op_type::AST_OP_BIT_OR' value '11' 'op_type::AST_OP_BIT_XOR' value '12' - type of 'filter_node* lchild' changed: pointed to type 'struct filter_node' changed; details are being reported type of 'filter_node* rchild' changed: @@ -301,7 +295,6 @@ Variables changes summary: 0 Removed, 0 Changed, 3 Added variables 'unary_op_type::AST_UNARY_BIN_NOT' value '4' 1 enumerator insertion: 'unary_op_type::AST_UNARY_BIT_NOT' value '4' - type of 'filter_node* child' changed: pointed to type 'struct filter_node' changed; details are being reported 'cds_list_head filter_ast::allocated_nodes' offset changed from 576 to 640 (in bits) (by +64 bits) diff --git a/tests/data/test-diff-dwarf/test15-enum-report.txt b/tests/data/test-diff-dwarf/test15-enum-report.txt index ae6370b7..bcc40270 100644 --- a/tests/data/test-diff-dwarf/test15-enum-report.txt +++ b/tests/data/test-diff-dwarf/test15-enum-report.txt @@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable '__anonymous_enum__::v4' value '4' '__anonymous_enum__::v5' value '5' - diff --git a/tests/data/test-diff-filter/test19-enum-report-1.txt b/tests/data/test-diff-filter/test19-enum-report-1.txt index ae6370b7..bcc40270 100644 --- a/tests/data/test-diff-filter/test19-enum-report-1.txt +++ b/tests/data/test-diff-filter/test19-enum-report-1.txt @@ -12,4 +12,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable '__anonymous_enum__::v4' value '4' '__anonymous_enum__::v5' value '5' - diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt index b1dd3c74..6867c0ea 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report0.txt @@ -1294,7 +1294,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc': diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt index c49d6c68..951f0605 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report1.txt @@ -1294,7 +1294,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' at liboffload_error_codes.h:38:1 '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' at liboffload_error_codes.h:38:1 - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' at offload_host.h:157:1 has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc' at offload_common.h:254:1: diff --git a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt index f0986450..fdd96bc8 100644 --- a/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt +++ b/tests/data/test-diff-filter/test30-pr18904-rvalueref-report2.txt @@ -1294,7 +1294,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' at liboffload_error_codes.h:38:1 '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' at liboffload_error_codes.h:38:1 - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' at offload_host.h:157:1 has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc' at offload_common.h:254:1: diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt index b1bc0e3a..28feddff 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-0.txt @@ -47,7 +47,6 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' - 6 Added variable symbols not referenced by debug info: [A] _ZTISt16bad_array_length@@CXXABI_1.3.8 diff --git a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt index 440e5720..ec25bf6d 100644 --- a/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt +++ b/tests/data/test-diff-filter/test31-pr18535-libstdc++-report-1.txt @@ -47,7 +47,6 @@ Variable symbols changes summary: 0 Removed, 6 Added variable symbols not refere 1 enumerator deletion: 'std::regex_constants::error_type::_S_error_last' value '13' - 6 Added variable symbols not referenced by debug info: [A] _ZTISt16bad_array_length@@CXXABI_1.3.8 diff --git a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt index 4bda6f6c..c0e56207 100644 --- a/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt +++ b/tests/data/test-diff-filter/test35-pr18754-no-added-syms-report-0.txt @@ -210,7 +210,6 @@ Variable symbols changes summary: 0 Removed, 0 Added variable symbol not referen '__anonymous_enum__::c_report_myorelease' from value '122' to '126' '__anonymous_enum__::c_coipipe_max_number' from value '123' to '133' - [C] 'method bool OffloadDescriptor::setup_descriptors(VarDesc*, VarDesc2*, int, int, void*)' has some indirect sub-type changes: parameter 1 of type 'VarDesc*' has sub-type changes: in pointed to type 'struct VarDesc': diff --git a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt index 8c0c6417..f484d0c6 100644 --- a/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/nss-3.23.0-1.0.fc23.x86_64-report-0.txt @@ -13,7 +13,6 @@ 1 enumerator change: '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1 - ================ end of changes of 'libnss3.so'=============== ================ changes of 'libssl3.so'=============== @@ -35,7 +34,6 @@ 1 enumerator change: '__anonymous_enum__::ssl_kea_size' from value '5' to '6' at sslt.h:40:1 - [C] 'function SECStatus SSL_GetCipherSuiteInfo(PRUint16, SSLCipherSuiteInfo*, PRUintn)' at sslinfo.c:294:1 has some indirect sub-type changes: parameter 2 of type 'SSLCipherSuiteInfo*' has sub-type changes: in pointed to type 'typedef SSLCipherSuiteInfo' at sslt.h:252:1: @@ -58,7 +56,6 @@ '__anonymous_enum__::ssl_auth_psk' value '9' '__anonymous_enum__::ssl_auth_size' value '10' - 1 Changed variable: [C] 'const PRUint16 SSL_ImplementedCiphers[74]' was changed to 'const PRUint16 SSL_ImplementedCiphers[69]' at sslenum.c:51:1: @@ -110,6 +107,5 @@ 1 enumerator change: '__anonymous_enum__1::SEC_OID_TOTAL' from value '347' to '348' at secoidt.h:34:1 - ================ end of changes of 'libsmime3.so'=============== diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt index 231ae0c8..f3b5b686 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-0.txt @@ -44,7 +44,6 @@ 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' - [C] 'function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)' at reds.c:3602:1 has some indirect sub-type changes: parameter 2 of type 'typedef spice_image_compression_t' changed: typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1 diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt index 5b8e4781..0cb9723d 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-1.txt @@ -44,7 +44,6 @@ 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' - [C] 'function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t)' at reds.c:3602:1 has some indirect sub-type changes: parameter 2 of type 'typedef spice_image_compression_t' changed: typedef name changed from spice_image_compression_t to SpiceImageCompression at enums.h:197:1 diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt index 055cb597..6d9beb85 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-2.txt @@ -450,7 +450,6 @@ 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ' value '6' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' - parameter 1 of type 'SpiceServer*' has sub-type changes: pointed to type 'typedef SpiceServer' changed at spice.h:440:1, as reported earlier diff --git a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt index 11cd5682..2ed87e92 100644 --- a/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt +++ b/tests/data/test-diff-pkg/spice-server-0.12.4-19.el7.x86_64-0.12.8-1.el7.x86_64-report-3.txt @@ -40,7 +40,6 @@ Leaf changes summary: 11 artifacts changed (7 filtered out) 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ' value '6' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_LZ4' value '7' 'SpiceImageCompression::SPICE_IMAGE_COMPRESSION_ENUM_END' value '8' - 2 impacted interfaces: function spice_image_compression_t spice_server_get_image_compression(SpiceServer*) function int spice_server_set_image_compression(SpiceServer*, spice_image_compression_t) diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt index ced0499d..451a4981 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-0.txt @@ -59,7 +59,6 @@ 1 enumerator change: 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 - [C] 'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: parameter 1 of type 'tbb::mutex&' has sub-type changes: in referenced type 'class tbb::mutex' at mutex.h:40:1: diff --git a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt index 9cfc3f6a..bef715b6 100644 --- a/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt +++ b/tests/data/test-diff-pkg/tbb-4.1-9.20130314.fc22.x86_64--tbb-4.3-3.20141204.fc23.x86_64-report-1.txt @@ -34,7 +34,6 @@ 1 enumerator change: 'tbb::internal::exception_id::eid_max' from value '20' to '21' at tbb_exception.h:79:1 - [C] 'method void tbb::mutex::scoped_lock::internal_acquire(tbb::mutex&)' at mutex.h:129:1 has some indirect sub-type changes: parameter 1 of type 'tbb::mutex&' has sub-type changes: in referenced type 'class tbb::mutex' at mutex.h:40:1: diff --git a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt index 653de77f..7dd246c1 100644 --- a/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt +++ b/tests/data/test-diff-suppr/test41-enumerator-changes-report-0.txt @@ -11,7 +11,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 enumerator change: 'EnumType1::eenum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:10:1 - [C] 'function void foo(EnumType0)' at test41-enumerator-changes-v1.cc:20:1 has some indirect sub-type changes: parameter 1 of type 'enum EnumType0' has sub-type changes: type size hasn't changed @@ -20,4 +19,3 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable 1 enumerator change: 'EnumType0::enum_count' from value '3' to '4' at test41-enumerator-changes-v1.cc:1:1 -