public inbox for libabigail@sourceware.org
 help / color / mirror / Atom feed
From: Dodji Seketeli <dodji@seketeli.org>
To: Dodji Seketeli via Libabigail <libabigail@sourceware.org>
Cc: Dodji Seketeli <dodji@redhat.com>
Subject: [PATCH 1/3] ir: Disambiguate sorting of array element types
Date: Sat, 23 Jul 2022 01:28:48 +0200	[thread overview]
Message-ID: <87lesk9173.fsf@seketeli.org> (raw)
In-Reply-To: <87sfms91n0.fsf@redhat.com> (Dodji Seketeli via Libabigail's message of "Sat, 23 Jul 2022 01:19:15 +0200")

Hello,

When using non-internal pretty representation of array types (e.g, for
sorting of types in a given scope for the purpose of serialization),
some array element types might have the same name, even though they
don't have the same qualified name.  In those cases, the serialized
abixml output is not stable.

This patches uses qualified names for array element names for type
sorting purposes.

However, this patch uncovers a problem that shows up in the tests
outputs for test-abidiff-exit and test-diff-filter, where emitting
qualified names of qualified types shows that there can be redundant
qualifiers in the serialized output.  This issue will be fixed
separately in a later commit.  For now, the output of these tests is
temporarily updated to have the tests pass.

	* src/abg-ir.cc (get_type_representation): In the overload for
	array_type_def, use qualified names for element types.
	* tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt: Adjust.
	* tests/data/test-annotate/test15-pr18892.so.abi: Adjust.
	* tests/data/test-annotate/test17-pr19027.so.abi: Adjust.
	* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
	Adjust.
	* tests/data/test-diff-filter/test-PR26739-2-report-0.txt: Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
Applied to master.
---
 src/abg-ir.cc                                 |   2 +-
 .../qualifier-typedef-array-report-1.txt      |  20 ++--
 .../data/test-annotate/test15-pr18892.so.abi  |  32 +++---
 .../data/test-annotate/test17-pr19027.so.abi  | 104 +++++++++---------
 ...19-pr19023-libtcmalloc_and_profiler.so.abi |  14 +--
 .../test-PR26739-2-report-0.txt               |   2 +-
 6 files changed, 87 insertions(+), 87 deletions(-)

diff --git a/src/abg-ir.cc b/src/abg-ir.cc
index 07736db9..5c1ac35b 100644
--- a/src/abg-ir.cc
+++ b/src/abg-ir.cc
@@ -17066,7 +17066,7 @@ get_type_representation(const array_type_def& a, bool internal)
 	  + a.get_subrange_representation();
       else
 	r = (e_type
-	     ? get_type_name(e_type, /*qualified=*/false, /*internal=*/false)
+	     ? get_type_name(e_type, /*qualified=*/true, /*internal=*/false)
 	     : string("void"))
 	  + a.get_subrange_representation();
     }
diff --git a/tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt b/tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt
index e9bf3d46..13949efc 100644
--- a/tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt
+++ b/tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt
@@ -50,36 +50,36 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             entity changed from 'typedef C' to compatible type 'const volatile void* const[7]'
               array element type 'void* const' changed:
                 'void* const' changed to 'const volatile void* const'
-              type name changed from 'void* const[7]' to 'volatile void* const[7]'
+              type name changed from 'void* const[7]' to 'const volatile void* const[7]'
               type size hasn't changed
           type of 'C r_c' changed:
-            entity changed from 'typedef C' to compatible type 'restrict void* const[7]'
+            entity changed from 'typedef C' to compatible type 'restrict const void* const[7]'
               array element type 'void* const' changed:
                 'void* const' changed to 'restrict const void* const'
-              type name changed from 'void* const[7]' to 'restrict void* const[7]'
+              type name changed from 'void* const[7]' to 'restrict const void* const[7]'
               type size hasn't changed
           type of 'D v_d' changed:
             entity changed from 'typedef D' to compatible type 'const volatile void* const[7]'
               array element type 'void* const' changed:
                 'void* const' changed to 'const volatile void* const'
-              type name changed from 'void* const[7]' to 'volatile void* const[7]'
+              type name changed from 'void* const[7]' to 'const volatile void* const[7]'
               type size hasn't changed
           type of 'D r_d' changed:
-            entity changed from 'typedef D' to compatible type 'restrict void* const[7]'
+            entity changed from 'typedef D' to compatible type 'restrict const void* const[7]'
               array element type 'void* const' changed:
                 'void* const' changed to 'restrict const void* const'
-              type name changed from 'void* const[7]' to 'restrict void* const[7]'
+              type name changed from 'void* const[7]' to 'restrict const void* const[7]'
               type size hasn't changed
           type of 'E r_e' changed:
-            entity changed from 'typedef E' to compatible type 'restrict const volatile void* const[7]'
+            entity changed from 'typedef E' to compatible type 'restrict const volatile volatile void* const[7]'
               array element type 'const volatile void* const' changed:
                 'const volatile void* const' changed to 'restrict const volatile volatile void* const'
-              type name changed from 'volatile void* const[7]' to 'restrict const volatile void* const[7]'
+              type name changed from 'const volatile void* const[7]' to 'restrict const volatile volatile void* const[7]'
               type size hasn't changed
           type of 'F r_f' changed:
-            entity changed from 'typedef F' to compatible type 'restrict const volatile void* const[7]'
+            entity changed from 'typedef F' to compatible type 'restrict const volatile volatile void* const[7]'
               array element type 'const volatile void* const' changed:
                 'const volatile void* const' changed to 'restrict const volatile volatile void* const'
-              type name changed from 'volatile void* const[7]' to 'restrict const volatile void* const[7]'
+              type name changed from 'const volatile void* const[7]' to 'restrict const volatile volatile void* const[7]'
               type size hasn't changed
 
diff --git a/tests/data/test-annotate/test15-pr18892.so.abi b/tests/data/test-annotate/test15-pr18892.so.abi
index bbabb567..dbcdb390 100644
--- a/tests/data/test-annotate/test15-pr18892.so.abi
+++ b/tests/data/test-annotate/test15-pr18892.so.abi
@@ -4588,7 +4588,7 @@
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/sanitizer_common/sanitizer_common.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/sanitizer_common' language='LANG_C_plus_plus'>
-    <!-- AddressRange[6] -->
+    <!-- __sanitizer::LoadedModule::AddressRange[6] -->
     <array-type-def dimensions='1' type-id='type-id-121' size-in-bits='768' id='type-id-122'>
       <!-- <anonymous range>[6] -->
       <subrange length='6' type-id='type-id-49' id='type-id-123'/>
@@ -10820,17 +10820,17 @@
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_interceptors.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
-    <!-- LibCodeRange[128] -->
+    <!-- __sanitizer::LibIgnore::LibCodeRange[128] -->
     <array-type-def dimensions='1' type-id='type-id-361' size-in-bits='16384' id='type-id-362'>
       <!-- <anonymous range>[128] -->
       <subrange length='128' type-id='type-id-49' id='type-id-363'/>
     </array-type-def>
-    <!-- Lib[128] -->
+    <!-- __sanitizer::LibIgnore::Lib[128] -->
     <array-type-def dimensions='1' type-id='type-id-364' size-in-bits='32768' id='type-id-365'>
       <!-- <anonymous range>[128] -->
       <subrange length='128' type-id='type-id-49' id='type-id-363'/>
     </array-type-def>
-    <!-- SignalDesc[64] -->
+    <!-- __tsan::SignalDesc[64] -->
     <array-type-def dimensions='1' type-id='type-id-366' size-in-bits='552960' id='type-id-367'>
       <!-- <anonymous range>[64] -->
       <subrange length='64' type-id='type-id-49' id='type-id-368'/>
@@ -10907,7 +10907,7 @@
       <!-- <anonymous range>[4] -->
       <subrange length='4' type-id='type-id-49' id='type-id-388'/>
     </array-type-def>
-    <!-- void*[128] -->
+    <!-- void ()*[128] -->
     <array-type-def dimensions='1' type-id='type-id-153' size-in-bits='8192' id='type-id-389'>
       <!-- <anonymous range>[128] -->
       <subrange length='128' type-id='type-id-49' id='type-id-363'/>
@@ -27650,42 +27650,42 @@
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_interface_atomic.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
     <!-- __int128 -->
     <type-decl name='__int128' size-in-bits='128' id='type-id-1270'/>
-    <!-- SizeClassInfo[53] -->
+    <!-- __sanitizer::SizeClassAllocator32<0ul, 140737488355328ull, 16ul, __sanitizer::SizeClassMap<17ul, 64ul, 14ul>, 24ul, __sanitizer::TwoLevelByteMap<2048ull, 4096ull, __sanitizer::NoOpMapUnmapCallback>, __sanitizer::NoOpMapUnmapCallback>::SizeClassInfo[53] -->
     <array-type-def dimensions='1' type-id='type-id-1271' size-in-bits='27136' id='type-id-1272'>
       <!-- <anonymous range>[53] -->
       <subrange length='53' type-id='type-id-49' id='type-id-1273'/>
     </array-type-def>
-    <!-- PerClass[53] -->
+    <!-- __sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator32<0ul, 140737488355328ull, 16ul, __sanitizer::SizeClassMap<17ul, 64ul, 14ul>, 24ul, __sanitizer::TwoLevelByteMap<2048ull, 4096ull, __sanitizer::NoOpMapUnmapCallback>, __sanitizer::NoOpMapUnmapCallback> >::PerClass[53] -->
     <array-type-def dimensions='1' type-id='type-id-185' size-in-bits='440960' id='type-id-189'>
       <!-- <anonymous range>[53] -->
       <subrange length='53' type-id='type-id-49' id='type-id-1273'/>
     </array-type-def>
-    <!-- PerClass[53] -->
+    <!-- __sanitizer::SizeClassAllocatorLocalCache<__sanitizer::SizeClassAllocator64<137438953472000ul, 1099511627776ul, 16ul, __sanitizer::SizeClassMap<17ul, 128ul, 16ul>, __tsan::MapUnmapCallback> >::PerClass[53] -->
     <array-type-def dimensions='1' type-id='type-id-1274' size-in-bits='875136' id='type-id-1275'>
       <!-- <anonymous range>[53] -->
       <subrange length='53' type-id='type-id-49' id='type-id-1273'/>
     </array-type-def>
-    <!-- atomic_uint64_t[4] -->
+    <!-- __sanitizer::atomic_uint64_t[4] -->
     <array-type-def dimensions='1' type-id='type-id-1276' size-in-bits='256' id='type-id-1277'>
       <!-- <anonymous range>[4] -->
       <subrange length='4' type-id='type-id-49' id='type-id-388'/>
     </array-type-def>
-    <!-- atomic_uintptr_t[2048] -->
+    <!-- __sanitizer::atomic_uintptr_t[2048] -->
     <array-type-def dimensions='1' type-id='type-id-1232' size-in-bits='131072' id='type-id-1278'>
       <!-- <anonymous range>[2048] -->
       <subrange length='2048' type-id='type-id-49' id='type-id-1279'/>
     </array-type-def>
-    <!-- MD5Hash[2] -->
+    <!-- __tsan::MD5Hash[2] -->
     <array-type-def dimensions='1' type-id='type-id-1280' size-in-bits='256' id='type-id-1281'>
       <!-- <anonymous range>[2] -->
       <subrange length='2' type-id='type-id-49' id='type-id-1282'/>
     </array-type-def>
-    <!-- Desc[16] -->
+    <!-- __tsan::MutexSet::Desc[16] -->
     <array-type-def dimensions='1' type-id='type-id-1283' size-in-bits='3072' id='type-id-1284'>
       <!-- <anonymous range>[16] -->
       <subrange length='16' type-id='type-id-49' id='type-id-382'/>
     </array-type-def>
-    <!-- Part[1009] -->
+    <!-- __tsan::SyncTab::Part[1009] -->
     <array-type-def dimensions='1' type-id='type-id-1285' size-in-bits='516608' id='type-id-1286'>
       <!-- <anonymous range>[1009] -->
       <subrange length='1009' type-id='type-id-49' id='type-id-1287'/>
@@ -35556,12 +35556,12 @@
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_mman.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
-    <!-- Header*[262144] -->
+    <!-- __sanitizer::LargeMmapAllocator<__sanitizer::CrashOnMapUnmap>::Header*[262144] -->
     <array-type-def dimensions='1' type-id='type-id-1518' size-in-bits='16777216' id='type-id-1519'>
       <!-- <anonymous range>[262144] -->
       <subrange length='262144' type-id='type-id-49' id='type-id-1520'/>
     </array-type-def>
-    <!-- Header*[262144] -->
+    <!-- __sanitizer::LargeMmapAllocator<__tsan::MapUnmapCallback>::Header*[262144] -->
     <array-type-def dimensions='1' type-id='type-id-1521' size-in-bits='16777216' id='type-id-1522'>
       <!-- <anonymous range>[262144] -->
       <subrange length='262144' type-id='type-id-49' id='type-id-1520'/>
@@ -40807,7 +40807,7 @@
     </namespace-decl>
   </abi-instr>
   <abi-instr address-size='64' path='../../.././libsanitizer/tsan/tsan_rtl_thread.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-ImG4Cf/gcc-4.9.2/x86_64-unknown-linux-gnu/libsanitizer/tsan' language='LANG_C_plus_plus'>
-    <!-- TraceHeader[256] -->
+    <!-- __tsan::TraceHeader[256] -->
     <array-type-def dimensions='1' type-id='type-id-1690' size-in-bits='5062656' id='type-id-1691'>
       <!-- <anonymous range>[256] -->
       <subrange length='256' type-id='type-id-49' id='type-id-202'/>
diff --git a/tests/data/test-annotate/test17-pr19027.so.abi b/tests/data/test-annotate/test17-pr19027.so.abi
index a303267b..a9f7b565 100644
--- a/tests/data/test-annotate/test17-pr19027.so.abi
+++ b/tests/data/test-annotate/test17-pr19027.so.abi
@@ -528,7 +528,7 @@
       <!-- <anonymous range>[40] -->
       <subrange length='40' type-id='type-id-4' id='type-id-5'/>
     </array-type-def>
-    <!-- hb_user_data_item_t[2] -->
+    <!-- hb_user_data_array_t::hb_user_data_item_t[2] -->
     <array-type-def dimensions='1' type-id='type-id-6' size-in-bits='384' id='type-id-7'>
       <!-- <anonymous range>[2] -->
       <subrange length='2' type-id='type-id-4' id='type-id-8'/>
@@ -3931,12 +3931,12 @@
     <typedef-decl name='hb_tag_t' type-id='type-id-100' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-common.h' line='91' column='1' id='type-id-185'/>
   </abi-instr>
   <abi-instr address-size='64' path='hb-face.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
-    <!-- OffsetTo<OT::OffsetTable, OT::IntType<unsigned int, 4u> >[1] -->
+    <!-- OT::OffsetTo<OT::OffsetTable, OT::IntType<unsigned int, 4u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-186' id='type-id-187'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- TableRecord[1] -->
+    <!-- OT::TableRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-188' id='type-id-189'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
@@ -10736,52 +10736,52 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-font.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
-    <!-- BYTE[256] -->
+    <!-- OT::BYTE[256] -->
     <array-type-def dimensions='1' type-id='type-id-670' size-in-bits='2048' id='type-id-671'>
       <!-- <anonymous range>[256] -->
       <subrange length='256' type-id='type-id-4' id='type-id-672'/>
     </array-type-def>
-    <!-- CmapSubtableLongGroup[1] -->
+    <!-- OT::CmapSubtableLongGroup[1] -->
     <array-type-def dimensions='1' type-id='type-id-673' id='type-id-674'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- EncodingRecord[1] -->
+    <!-- OT::EncodingRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-675' id='type-id-676'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- IntType<short unsigned int, 2u>[1] -->
+    <!-- OT::IntType<short unsigned int, 2u>[1] -->
     <array-type-def dimensions='1' type-id='type-id-237' id='type-id-677'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- LongMetric[1] -->
+    <!-- OT::LongMetric[1] -->
     <array-type-def dimensions='1' type-id='type-id-678' id='type-id-679'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- SHORT[1] -->
+    <!-- OT::SHORT[1] -->
     <array-type-def dimensions='1' type-id='type-id-573' id='type-id-680'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- USHORT[1] -->
+    <!-- OT::USHORT[1] -->
     <array-type-def dimensions='1' type-id='type-id-371' id='type-id-681'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- UVSMapping[1] -->
+    <!-- OT::UVSMapping[1] -->
     <array-type-def dimensions='1' type-id='type-id-682' id='type-id-683'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- UnicodeValueRange[1] -->
+    <!-- OT::UnicodeValueRange[1] -->
     <array-type-def dimensions='1' type-id='type-id-684' id='type-id-685'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- VariationSelectorRecord[1] -->
+    <!-- OT::VariationSelectorRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-686' id='type-id-687'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
@@ -12894,162 +12894,162 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-layout.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
-    <!-- EntryExitRecord[1] -->
+    <!-- OT::EntryExitRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-851' id='type-id-852'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Index[1] -->
+    <!-- OT::Index[1] -->
     <array-type-def dimensions='1' type-id='type-id-853' id='type-id-854'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- IntType<unsigned int, 3u>[1] -->
+    <!-- OT::IntType<unsigned int, 3u>[1] -->
     <array-type-def dimensions='1' type-id='type-id-735' id='type-id-855'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- LookupRecord[1] -->
+    <!-- OT::LookupRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-856' id='type-id-857'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- MarkRecord[1] -->
+    <!-- OT::MarkRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-858' id='type-id-859'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Offset<OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::Offset<OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-860' id='type-id-861'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Anchor, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Anchor, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-862' id='type-id-863'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::AnchorMatrix, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::AnchorMatrix, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-864' id='type-id-865'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::ArrayOf<OT::IntType<short unsigned int, 2u>, OT::IntType<short unsigned int, 2u> >, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::ArrayOf<OT::IntType<short unsigned int, 2u>, OT::IntType<short unsigned int, 2u> >, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-866' id='type-id-867'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::CaretValue, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::CaretValue, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-868' id='type-id-869'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::ChainRule, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::ChainRule, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-870' id='type-id-871'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::ChainRuleSet, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::ChainRuleSet, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-872' id='type-id-873'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Coverage, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Coverage, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-874' id='type-id-875'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Coverage, OT::IntType<unsigned int, 4u> >[1] -->
+    <!-- OT::OffsetTo<OT::Coverage, OT::IntType<unsigned int, 4u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-876' id='type-id-877'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::LigGlyph, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::LigGlyph, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-878' id='type-id-879'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Ligature, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Ligature, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-880' id='type-id-881'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::LigatureSet, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::LigatureSet, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-882' id='type-id-883'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Lookup, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Lookup, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-884' id='type-id-885'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::MarkGlyphSets, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::MarkGlyphSets, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-886' id='type-id-887'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::PairSet, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::PairSet, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-888' id='type-id-889'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::PosLookup, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::PosLookup, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-890' id='type-id-891'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::PosLookupSubTable, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::PosLookupSubTable, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-892' id='type-id-893'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Rule, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Rule, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-894' id='type-id-895'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::RuleSet, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::RuleSet, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-896' id='type-id-897'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::Sequence, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::Sequence, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-898' id='type-id-899'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::SubstLookup, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::SubstLookup, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-900' id='type-id-901'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- OffsetTo<OT::SubstLookupSubTable, OT::IntType<short unsigned int, 2u> >[1] -->
+    <!-- OT::OffsetTo<OT::SubstLookupSubTable, OT::IntType<short unsigned int, 2u> >[1] -->
     <array-type-def dimensions='1' type-id='type-id-902' id='type-id-903'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- RangeRecord[1] -->
+    <!-- OT::RangeRecord[1] -->
     <array-type-def dimensions='1' type-id='type-id-904' id='type-id-905'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Record<OT::Feature>[1] -->
+    <!-- OT::Record<OT::Feature>[1] -->
     <array-type-def dimensions='1' type-id='type-id-906' id='type-id-907'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Record<OT::LangSys>[1] -->
+    <!-- OT::Record<OT::LangSys>[1] -->
     <array-type-def dimensions='1' type-id='type-id-908' id='type-id-909'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Record<OT::Script>[1] -->
+    <!-- OT::Record<OT::Script>[1] -->
     <array-type-def dimensions='1' type-id='type-id-910' id='type-id-911'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
     </array-type-def>
-    <!-- Value[1] -->
+    <!-- OT::Value[1] -->
     <array-type-def dimensions='1' type-id='type-id-912' id='type-id-913'>
       <!-- <anonymous range>[1] -->
       <subrange length='1' type-id='type-id-4' id='type-id-179'/>
@@ -13059,17 +13059,17 @@
       <!-- <anonymous range>[2] -->
       <subrange length='2' type-id='type-id-4' id='type-id-8'/>
     </array-type-def>
-    <!-- feature_map_t[8] -->
+    <!-- hb_ot_map_t::feature_map_t[8] -->
     <array-type-def dimensions='1' type-id='type-id-915' size-in-bits='2304' id='type-id-916'>
       <!-- <anonymous range>[8] -->
       <subrange length='8' type-id='type-id-4' id='type-id-63'/>
     </array-type-def>
-    <!-- lookup_map_t[32] -->
+    <!-- hb_ot_map_t::lookup_map_t[32] -->
     <array-type-def dimensions='1' type-id='type-id-917' size-in-bits='2048' id='type-id-918'>
       <!-- <anonymous range>[32] -->
       <subrange length='32' type-id='type-id-4' id='type-id-919'/>
     </array-type-def>
-    <!-- stage_map_t[4] -->
+    <!-- hb_ot_map_t::stage_map_t[4] -->
     <array-type-def dimensions='1' type-id='type-id-920' size-in-bits='512' id='type-id-921'>
       <!-- <anonymous range>[4] -->
       <subrange length='4' type-id='type-id-4' id='type-id-71'/>
@@ -29612,7 +29612,7 @@
       </class-decl>
       <!-- typedef OT::USHORT OT::Value -->
       <typedef-decl name='Value' type-id='type-id-371' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-ot-layout-gpos-table.hh' line='45' column='1' id='type-id-912'/>
-      <!-- typedef Value[1] OT::ValueRecord -->
+      <!-- typedef OT::Value[1] OT::ValueRecord -->
       <typedef-decl name='ValueRecord' type-id='type-id-913' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-ot-layout-gpos-table.hh' line='47' column='1' id='type-id-1849'/>
       <!-- typedef bool (hb_set_t*, const OT::USHORT&, void*)* OT::intersects_func_t -->
       <typedef-decl name='intersects_func_t' type-id='type-id-1399' filepath='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src/hb-ot-layout-gsubgpos-private.hh' line='626' column='1' id='type-id-1885'/>
@@ -30055,12 +30055,12 @@
     </function-type>
   </abi-instr>
   <abi-instr address-size='64' path='hb-ot-map.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
-    <!-- feature_info_t[32] -->
+    <!-- hb_ot_map_builder_t::feature_info_t[32] -->
     <array-type-def dimensions='1' type-id='type-id-1898' size-in-bits='7168' id='type-id-1899'>
       <!-- <anonymous range>[32] -->
       <subrange length='32' type-id='type-id-4' id='type-id-919'/>
     </array-type-def>
-    <!-- stage_info_t[8] -->
+    <!-- hb_ot_map_builder_t::stage_info_t[8] -->
     <array-type-def dimensions='1' type-id='type-id-1900' size-in-bits='1024' id='type-id-1901'>
       <!-- <anonymous range>[8] -->
       <subrange length='8' type-id='type-id-4' id='type-id-63'/>
@@ -31395,7 +31395,7 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='hb-set.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-04g73E/harfbuzz-0.9.37/src' language='LANG_C_plus_plus'>
-    <!-- elt_t[2048] -->
+    <!-- hb_set_t::elt_t[2048] -->
     <array-type-def dimensions='1' type-id='type-id-2025' size-in-bits='65536' id='type-id-2026'>
       <!-- <anonymous range>[2048] -->
       <subrange length='2048' type-id='type-id-4' id='type-id-2027'/>
diff --git a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
index 44e1db28..8cb8aeba 100644
--- a/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
+++ b/tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
@@ -2841,7 +2841,7 @@
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='src/base/low_level_alloc.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
-    <!-- AllocList*[30] -->
+    <!-- low_level_alloc_internal::AllocList*[30] -->
     <array-type-def dimensions='1' type-id='type-id-92' size-in-bits='1920' id='type-id-93'>
       <!-- <anonymous range>[30] -->
       <subrange length='30' type-id='type-id-23' id='type-id-94'/>
@@ -22310,12 +22310,12 @@
   <abi-instr address-size='64' path='src/profiledata.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
   </abi-instr>
   <abi-instr address-size='64' path='src/profiler.cc' comp-dir-path='/tmp/legendre/spack-stage/spack-stage-kFgaKP/gperftools-2.4' language='LANG_C_plus_plus'>
-    <!-- Slot[64] -->
+    <!-- ProfileData::Entry::Slot[64] -->
     <array-type-def dimensions='1' type-id='type-id-1229' size-in-bits='4096' id='type-id-1230'>
       <!-- <anonymous range>[64] -->
       <subrange length='64' type-id='type-id-23' id='type-id-1231'/>
     </array-type-def>
-    <!-- Entry[4] -->
+    <!-- ProfileData::Entry[4] -->
     <array-type-def dimensions='1' type-id='type-id-1232' size-in-bits='16896' id='type-id-1233'>
       <!-- <anonymous range>[4] -->
       <subrange length='4' type-id='type-id-23' id='type-id-188'/>
@@ -25418,22 +25418,22 @@
       <!-- <anonymous range>[88] -->
       <subrange length='88' type-id='type-id-23' id='type-id-1359'/>
     </array-type-def>
-    <!-- TCEntry[64] -->
+    <!-- tcmalloc::CentralFreeList::TCEntry[64] -->
     <array-type-def dimensions='1' type-id='type-id-1361' size-in-bits='8192' id='type-id-1362'>
       <!-- <anonymous range>[64] -->
       <subrange length='64' type-id='type-id-23' id='type-id-1231'/>
     </array-type-def>
-    <!-- CentralFreeListPadded[88] -->
+    <!-- tcmalloc::CentralFreeListPadded[88] -->
     <array-type-def dimensions='1' type-id='type-id-1363' id='type-id-1364'>
       <!-- <anonymous range>[88] -->
       <subrange length='88' type-id='type-id-23' id='type-id-1359'/>
     </array-type-def>
-    <!-- SpanList[128] -->
+    <!-- tcmalloc::PageHeap::SpanList[128] -->
     <array-type-def dimensions='1' type-id='type-id-1365' size-in-bits='98304' id='type-id-1366'>
       <!-- <anonymous range>[128] -->
       <subrange length='128' type-id='type-id-23' id='type-id-1357'/>
     </array-type-def>
-    <!-- FreeList[88] -->
+    <!-- tcmalloc::ThreadCache::FreeList[88] -->
     <array-type-def dimensions='1' type-id='type-id-1367' size-in-bits='16896' id='type-id-1368'>
       <!-- <anonymous range>[88] -->
       <subrange length='88' type-id='type-id-23' id='type-id-1359'/>
diff --git a/tests/data/test-diff-filter/test-PR26739-2-report-0.txt b/tests/data/test-diff-filter/test-PR26739-2-report-0.txt
index a98473b4..999d9614 100644
--- a/tests/data/test-diff-filter/test-PR26739-2-report-0.txt
+++ b/tests/data/test-diff-filter/test-PR26739-2-report-0.txt
@@ -12,6 +12,6 @@ Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
             entity changed from 'const volatile const int[5]' to compatible type 'typedef array_type1' at test-PR26739-2-v1.c:3:1
               array element type 'const volatile const int' changed:
                 'const volatile const int' changed to 'const int'
-              type name changed from 'volatile const int[5]' to 'const int[5]'
+              type name changed from 'const volatile const int[5]' to 'const int[5]'
               type size hasn't changed
 
-- 
2.36.1

-- 
		Dodji

  reply	other threads:[~2022-07-22 23:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-22 23:19 [PATCH 0/3] Make integral types of same base and size compatible Dodji Seketeli
2022-07-22 23:28 ` Dodji Seketeli [this message]
2022-07-22 23:31 ` [PATCH 2/3] dwarf-reader: Remove redundant qualifiers from qualified types Dodji Seketeli
2022-07-22 23:32 ` [PATCH 3/3] ir: Consider integral types of same kind and size as equivalent Dodji Seketeli
2022-08-10 15:23   ` Giuliano Procida
2022-08-11  2:22     ` Ben Woodard
2022-08-12 15:26       ` Giuliano Procida
2022-08-16 19:56         ` Ben Woodard
2022-08-16 16:54     ` Dodji Seketeli
2022-08-16 17:06       ` Ben Woodard
2022-08-16 18:10       ` Giuliano Procida
2022-08-18 16:29         ` Dodji Seketeli
2022-08-18 17:52           ` Ben Woodard
2022-08-19 15:30             ` Dodji Seketeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87lesk9173.fsf@seketeli.org \
    --to=dodji@seketeli.org \
    --cc=dodji@redhat.com \
    --cc=libabigail@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).