its not that clang crashed while compiling.
Its the binary it produced which crashes.
This shows up when you do a simple "make test" after compiling libobjc2.
Attached is a console output of my test system once with CC=clang (which
is clang-11) and once with CC=clang-16
As you can see all tests pass with clang-11 and with clang-16, more than
half are failing
57% tests passed, 86 tests failed out of 198
Total Test time (real) = 12.16 sec
The following tests FAILED:
1 - alias (SEGFAULT)
2 - alias_optimised (SEGFAULT)
5 - alignTest (SEGFAULT)
6 - alignTest_optimised (SEGFAULT)
9 - AllocatePair (SEGFAULT)
10 - AllocatePair_optimised (SEGFAULT)
13 - ARCTest_arc (SEGFAULT)
14 - ARCTest_arc_optimised (SEGFAULT)
17 - AssociatedObject (SEGFAULT)
18 - AssociatedObject_optimised (SEGFAULT)
21 - AssociatedObject2 (SEGFAULT)
22 - AssociatedObject2_optimised (SEGFAULT)
25 - BlockImpTest (SEGFAULT)
26 - BlockImpTest_optimised (SEGFAULT)
33 - ConstantString (SEGFAULT)
34 - ConstantString_optimised (SEGFAULT)
37 - Category (SEGFAULT)
38 - Category_optimised (SEGFAULT)
41 - ExceptionTest (SEGFAULT)
42 - ExceptionTest_optimised (SEGFAULT)
45 - FastARC (SEGFAULT)
46 - FastARC_optimised (SEGFAULT)
49 - FastARCPool (SEGFAULT)
50 - FastARCPool_optimised (SEGFAULT)
53 - FastRefCount (SEGFAULT)
54 - FastRefCount_optimised (SEGFAULT)
57 - Forward (SEGFAULT)
58 - Forward_optimised (SEGFAULT)
61 - ManyManySelectors (SEGFAULT)
62 - ManyManySelectors_optimised (SEGFAULT)
65 - NestedExceptions (SEGFAULT)
66 - NestedExceptions_optimised (SEGFAULT)
69 - PropertyAttributeTest (SEGFAULT)
70 - PropertyAttributeTest_optimised (SEGFAULT)
81 - PropertyIntrospectionTest2_arc (Subprocess aborted)
82 - PropertyIntrospectionTest2_arc_optimised (Subprocess aborted)
85 - ProtocolCreation (Subprocess aborted)
86 - ProtocolCreation_optimised (Subprocess aborted)
89 - ResurrectInDealloc_arc (SEGFAULT)
90 - ResurrectInDealloc_arc_optimised (SEGFAULT)
93 - RuntimeTest (SEGFAULT)
94 - RuntimeTest_optimised (SEGFAULT)
97 - SuperMethodMissing (SEGFAULT)
98 - SuperMethodMissing_optimised (SEGFAULT)
105 - WeakRefLoad (SEGFAULT)
106 - WeakRefLoad_optimised (SEGFAULT)
109 - WeakReferences_arc (SEGFAULT)
110 - WeakReferences_arc_optimised (SEGFAULT)
117 - ivar_arc (SEGFAULT)
118 - ivar_arc_optimised (SEGFAULT)
121 - ivar_atomic (SEGFAULT)
122 - ivar_atomic_optimised (SEGFAULT)
125 - IVarOverlap (SEGFAULT)
126 - IVarOverlap_optimised (SEGFAULT)
129 - IVarSuperclassOverlap (Subprocess aborted)
130 - IVarSuperclassOverlap_optimised (Subprocess aborted)
133 - objc_msgSend (Subprocess aborted)
134 - objc_msgSend_optimised (Subprocess aborted)
141 - NilException (Subprocess aborted)
142 - NilException_optimised (Subprocess aborted)
145 - MethodArguments (Subprocess aborted)
146 - MethodArguments_optimised (Subprocess aborted)
149 - zeroSizedIVar (Subprocess aborted)
150 - zeroSizedIVar_optimised (Subprocess aborted)
153 - exchange (SEGFAULT)
154 - exchange_optimised (SEGFAULT)
165 - setSuperclass (SEGFAULT)
166 - setSuperclass_optimised (SEGFAULT)
169 - BoxedForeignException (SEGFAULT)
170 - BoxedForeignException_optimised (SEGFAULT)
177 - category_properties (Subprocess aborted)
178 - category_properties_optimised (Subprocess aborted)
179 - CXXExceptions (SEGFAULT)
180 - CXXExceptions_optimised (SEGFAULT)
187 - ObjCXXEHInterop (SEGFAULT)
188 - ObjCXXEHInterop_optimised (SEGFAULT)
189 - ObjCXXEHInterop_legacy (SEGFAULT)
190 - ObjCXXEHInterop_legacy_optimised (SEGFAULT)
191 - ObjCXXEHInteropTwice (SEGFAULT)
192 - ObjCXXEHInteropTwice_optimised (SEGFAULT)
193 - ObjCXXEHInteropTwice_legacy (SEGFAULT)
194 - ObjCXXEHInteropTwice_legacy_optimised (SEGFAULT)
195 - ObjCXXEHInterop_arc (SEGFAULT)
196 - ObjCXXEHInterop_arc_optimised (SEGFAULT)
197 - ObjCXXEHInterop_arc_legacy (SEGFAULT)
198 - ObjCXXEHInterop_arc_legacy_optimised (SEGFAULT)
Gregory Casamento wrote on 16.09.22 14:58:
Can you post the error? Also clang will produce
scripts and a sample bit of the code that failed. It would be useful to
post that to their bug tracker.
FYI,
The current clang-16 in the debian 10 repository does not work when
compiling libobjc2
Compiling works but most of the tests segfault
Changing to clang-11 everything works
clang-9 also works.
What has changed in the compiler that it breas Objc?
--