ObjFW  Check-in [5c0117205d]

Overview
Comment:Work around an ICE in Clang 3.7.0 on Windows/x86

Apparently the optimizer crashes on some recursive functions.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5c0117205db63ff0c681ff3554f49885010e1163eab6aed766baa26b826501fd
User & Date: js on 2022-11-06 21:19:39
Other Links: manifest | tags
Context
2022-11-06
21:24
OFIPXSocketTests: Do not compare sender network check-in: af0f8118d0 user: js tags: trunk
21:19
Work around an ICE in Clang 3.7.0 on Windows/x86 check-in: 5c0117205d user: js tags: trunk
20:36
Rename OFIPSocketAsyncConnector check-in: 24ff63b586 user: js tags: trunk
Changes

Modified src/OFMethodSignature.m from [e6d0a405ec] to [9c702fcecb].

142
143
144
145
146
147
148




149
150
151
152
153
154
155
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159







+
+
+
+







	(*type)++;
	(*length)--;

	return alignment;
}

static size_t
#if defined(__clang__) && __clang_major__ == 3 && __clang_minor__ <= 7
/* Work around an ICE in Clang 3.7.0 on Windows/x86 */
__attribute__((__optnone__))
#endif
alignmentOfEncoding(const char **type, size_t *length, bool inStruct)
{
	size_t alignment;

	if (*length == 0)
		@throw [OFInvalidFormatException exception];

Modified src/runtime/class.m from [bcbf47b312] to [4cb79aa414].

776
777
778
779
780
781
782




783
784
785
786
787
788
789
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793







+
+
+
+








	class->methodList = methodList;

	objc_updateDTable(class);
}

Method
#if defined(__clang__) && __clang_major__ == 3 && __clang_minor__ <= 7
/* Work around an ICE in Clang 3.7.0 on Windows/x86 */
__attribute__((__optnone__))
#endif
class_getInstanceMethod(Class class, SEL selector)
{
	Method method;
	Class superclass;

	if (class == Nil)
		return NULL;