This is the mail archive of the gcc-regression@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 21 GCC regressions, 0 new, with your patch on 2003-06-26T09:45:01Z.


Here is the diff with and without -funit-at-a-time on Darwin:
--- test.s	Thu Jun 26 11:10:39 2003
+++ test1.s	Thu Jun 26 11:10:38 2003
@@ -26,6 +26,13 @@
 	mtlr r0
 	lmw r30,-8(r1)
 	blr
+	.lazy_reference .objc_class_name_B
+	.lazy_reference .objc_class_name_A
+	.lazy_reference .objc_class_name_Object
+	.objc_class_name_B=0
+	.globl .objc_class_name_B
+	.objc_class_name_A=0
+	.globl .objc_class_name_A
 .data
 .objc_cat_cls_meth
 .data
@@ -67,118 +74,20 @@
 .data
 .objc_symbols
 .data
-.objc_symbols
-	.align 2
-L_OBJC_SYMBOLS:
-	.long	0
-	.long	0
-	.short	2
-	.short	0
-	.long	L_OBJC_CLASS_B
-	.long	L_OBJC_CLASS_A
-.data
-.objc_meta_class
-	.align 2
-L_OBJC_METACLASS_B:
-	.long	L_OBJC_CLASS_NAME_2
-	.long	L_OBJC_CLASS_NAME_1
-	.long	L_OBJC_CLASS_NAME_0
-	.long	0
-	.long	2
-	.long	48
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.space 4
-.data
-.objc_class
-	.align 2
-L_OBJC_CLASS_B:
-	.long	L_OBJC_METACLASS_B
-	.long	L_OBJC_CLASS_NAME_1
-	.long	L_OBJC_CLASS_NAME_0
-	.long	0
-	.long	1
-	.long	4
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.space 4
-.data
-.objc_meta_class
-	.align 2
-L_OBJC_METACLASS_A:
-	.long	L_OBJC_CLASS_NAME_2
-	.long	L_OBJC_CLASS_NAME_2
-	.long	L_OBJC_CLASS_NAME_1
-	.long	0
-	.long	2
-	.long	48
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.space 4
-.data
-.objc_class
-	.align 2
-L_OBJC_CLASS_A:
-	.long	L_OBJC_METACLASS_A
-	.long	L_OBJC_CLASS_NAME_2
-	.long	L_OBJC_CLASS_NAME_1
-	.long	0
-	.long	1
-	.long	4
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.long	0
-	.space 4
-.data
-.objc_message_refs
-	.align 2
-L_OBJC_SELECTOR_REFERENCES_0:
-	.long	L_OBJC_METH_VAR_NAME_0
-.data
-.objc_module_info
-	.align 2
-L_OBJC_MODULES:
-	.long	5
-	.long	16
-	.long	L_OBJC_CLASS_NAME_3
-	.long	L_OBJC_SYMBOLS
-	.lazy_reference .objc_class_name_B
-.data
 .objc_cls_refs
 	.align 2
 L_OBJC_CLASS_REFERENCES_0:
 	.long	L_OBJC_CLASS_NAME_0
-	.lazy_reference .objc_class_name_A
-	.lazy_reference .objc_class_name_Object
-	.objc_class_name_B=0
-	.globl .objc_class_name_B
-	.objc_class_name_A=0
-	.globl .objc_class_name_A
 .data
 .objc_class_names
 	.align 2
 L_OBJC_CLASS_NAME_0:
 	.ascii "B\0"
+.data
+.objc_message_refs
 	.align 2
-L_OBJC_CLASS_NAME_1:
-	.ascii "A\0"
-	.align 2
-L_OBJC_CLASS_NAME_2:
-	.ascii "Object\0"
-	.align 2
-L_OBJC_CLASS_NAME_3:
-	.ascii "test.m\0"
+L_OBJC_SELECTOR_REFERENCES_0:
+	.long	L_OBJC_METH_VAR_NAME_0
 .data
 .objc_meth_var_names
 	.align 2

Thanks,
Andrew Pinski


On Thursday, Jun 26, 2003, at 11:08 US/Eastern, Andrew Pinski wrote:



On Thursday, Jun 26, 2003, at 10:36 US/Eastern, GCC regression checker wrote:

native objc.sum objc/execute/accessing_ivars.m native objc.sum objc/execute/bycopy-2.m native objc.sum objc/execute/enumeration-1.m native objc.sum objc/execute/enumeration-2.m native objc.sum objc/execute/formal_protocol-1.m native objc.sum objc/execute/formal_protocol-2.m native objc.sum objc/execute/formal_protocol-3.m native objc.sum objc/execute/formal_protocol-4.m native objc.sum objc/execute/formal_protocol-7.m native objc.sum objc/execute/initialize.m native objc.sum objc/execute/load-2.m native objc.sum objc/execute/load-3.m native objc.sum objc/execute/load.m native objc.sum objc/execute/no_clash.m native objc.sum objc/execute/object_is_class.m native objc.sum objc/execute/object_is_meta_class.m

Looks like still more unit-at-a-time problems with Objective-C, this time only on Darwin :( .


With the following code (which is valid and should not seg fault) seg faults when runs on Darwin with -funit-at-a-time only as an option:
---------------------------------------------------------
#include <objc/objc.h>
#include <objc/Object.h>
@interface A : Object
@end
@interface B : A
@end
@implementation A
@end
@implementation B
@end
int main()
{
B *b = [B new];
return 0;
}
-----------------cut------------------------------------
It does not seg fault on linux, remember that on Darwin there are Objective-C sections in the asm.



Thanks, Andrew Pinski





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]