From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30050 invoked by alias); 10 Jul 2010 00:23:11 -0000 Received: (qmail 30016 invoked by alias); 10 Jul 2010 00:22:57 -0000 Date: Sat, 10 Jul 2010 00:23:00 -0000 Message-ID: <20100710002257.30015.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug objc/44140] ObjC lto/whopr fails In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "iains at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-07/txt/msg01092.txt.bz2 ------- Comment #17 from iains at gcc dot gnu dot org 2010-07-10 00:22 ------- Subject: Bug 44140 Author: iains Date: Sat Jul 10 00:22:35 2010 New Revision: 162030 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=162030 Log: make ObjC do LTO. gcc/ PR objc/44140 * config/darwin.c (output_objc_section_asm_op): Save and restore section when outputting ObjC section list. testsuite/ PR objc/44140 * objc.dg/lto/trivial-1_0.m: New. * objc.dg/lto/lto.exp: New. * obj-c++.dg/lto/trivial-1_0.mm: New. * obj-c++.dg/lto/lto.exp: New. * objc.dg/symtab-1.m: Adjust sizes. * objc.dg/image-info.m: Do not run for gnu-runtime. gcc/objc/ PR objc/44140 * objc-act.c: build_objc_string_decl() remove declaration. (finish_var_decl): Remove forcing of var output and marking as "Used". (init_def_list): Use integer_zero_node. (init_objc_symtab): Use integer_zero_node, make the short integer type specific on relevant nodes. (generate_objc_symtab_decl): Remove call to forward_declare_categories(). Use null_pointer_node where appropriate. (build_module_descriptor): Comment and mark this item as DECL_PRESERVE_P. (generate_static_references): Use gcc_unreachable instead of abort (). (diagnose_missing_method): New. (build_next_selector_translation_table): New. (build_gnu_selector_translation_table): New. (add_objc_string): Merge code from build_objc_string_decl... ... and delete build_objc_string_decl(). (generate_dispatch_table): Make integer types explicit. (generate_category): Pass implent and arrange for the data to be extracted within the routine. Do not start new vars, but finish the ones collcted during parsing. (generate_shared_structures): Likewise. (finish_objc): Reorder code so that we finish variables before referencing them. Save the global data before calling meta-data creation routines, and pass the current reference to the two main routines. Only call generate_objc_image_info () for the NeXT runtime. (generate_classref_translation_entry): Comment on and make this item DECL_PRESERVE_P. (handle_class_ref): Use varpool interfaces, comment on and make this item DECL_PRESERVE_P. (handle_impent): Likewise. (generate_objc_image_info): Only generate when the content is non-zero. Make integer types explict. Added: trunk/gcc/testsuite/obj-c++.dg/lto/ trunk/gcc/testsuite/obj-c++.dg/lto/lto.exp trunk/gcc/testsuite/obj-c++.dg/lto/trivial-1_0.mm trunk/gcc/testsuite/objc.dg/lto/ trunk/gcc/testsuite/objc.dg/lto/lto.exp trunk/gcc/testsuite/objc.dg/lto/trivial-1_0.m Modified: trunk/gcc/ChangeLog trunk/gcc/config/darwin.c trunk/gcc/objc/ChangeLog trunk/gcc/objc/objc-act.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/objc.dg/image-info.m trunk/gcc/testsuite/objc.dg/symtab-1.m -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44140