]> sourceware.org Git - libabigail.git/commitdiff
ir: Disambiguate sorting of array element types
authorDodji Seketeli <dodji@redhat.com>
Fri, 22 Jul 2022 07:56:17 +0000 (09:56 +0200)
committerDodji Seketeli <dodji@redhat.com>
Fri, 22 Jul 2022 23:22:41 +0000 (01:22 +0200)
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>
src/abg-ir.cc
tests/data/test-abidiff-exit/qualifier-typedef-array-report-1.txt
tests/data/test-annotate/test15-pr18892.so.abi
tests/data/test-annotate/test17-pr19027.so.abi
tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi
tests/data/test-diff-filter/test-PR26739-2-report-0.txt

index 07736db9de0e7aa48d553982f07e80a41e52860b..5c1ac35b7656c763739aded33be0d2fcddfc3290 100644 (file)
@@ -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();
     }
index e9bf3d46a1afef4477c1b8393167860c1e30eb5c..13949efcf78e6c57955103e97ab56d74c34a821e 100644 (file)
@@ -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
 
index bbabb567f670bc471f52ff132a5f0ad55ed260be..dbcdb390a57fb9c7beb171cf87c59eb5d1683abc 100644 (file)
     </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'/>
     </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'/>
       <!-- <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'/>
   <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'/>
     </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'/>
     </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'/>
index a303267b2b0510feb6a339301997a3ef84b7d457..a9f7b565e41cfac797201a75240362658bb83dc5 100644 (file)
       <!-- <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'/>
     <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'/>
     </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'/>
     </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'/>
       <!-- <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'/>
       </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'/>
     </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'/>
     </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'/>
index 44e1db283950d7494d9408c7b3b28b0391e8c3a4..8cb8aeba74d983d34e8613eb8cb932d0525febcd 100644 (file)
     </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'/>
   <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'/>
       <!-- <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'/>
index a98473b4ea7033e8370a0f25a85d12961b415b47..999d9614d50bc8197c404ad08c1588d900815e43 100644 (file)
@@ -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
 
This page took 0.205727 seconds and 5 git commands to generate.