This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
Re: 21 GCC regressions, 0 new, with your patch on 2003-06-26T09:45:01Z.
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: gcc-regression at gcc dot gnu dot org, Jan Hubicka <jh at suse dot cz>, gcc at gcc dot gnu dot org
- Date: Thu, 26 Jun 2003 11:13:36 -0400
- Subject: 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