mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-15 11:31:19 +08:00
re PR objc/30479 (Precompiled headers don't seem to work with GNU ObjC)
2007-01-20 Andrew Pinski <pinskia@gmail.com> PR objc/30479 * objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead of htab_hash_pointer. (lookup_interface): Likewise. (add_class): Likewise. 2007-01-20 Andrew Pinski <pinskia@gmail.com> PR objc/30479 * objc.dg/pch: New directory. * objc.dg/pch/pch.exp: New file. * objc.dg/pch/interface-1.m: New test. * objc.dg/pch/interface-1.hs: New include file. * lib/objc.exp (objc_target_compile): Add "-x objective-c-header" in front of the sources if this is a precompiled header being compiled. From-SVN: r121024
This commit is contained in:
parent
78681dbdee
commit
d2f9f9a62d
@ -1,3 +1,11 @@
|
||||
2007-01-20 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR objc/30479
|
||||
* objc-act.c (hash_interface): Use IDENTIFIER_HASH_VALUE instead
|
||||
of htab_hash_pointer.
|
||||
(lookup_interface): Likewise.
|
||||
(add_class): Likewise.
|
||||
|
||||
2007-01-02 Douglas Gregor <doug.gregor@gmail.com>
|
||||
|
||||
* objc-act.c (objc_build_volatilized_type): Keep track of
|
||||
|
@ -3298,7 +3298,7 @@ static hashval_t
|
||||
hash_interface (const void *p)
|
||||
{
|
||||
const struct interface_tuple *d = p;
|
||||
return htab_hash_pointer (d->id);
|
||||
return IDENTIFIER_HASH_VALUE (d->id);
|
||||
}
|
||||
|
||||
static int
|
||||
@ -3327,7 +3327,7 @@ lookup_interface (tree ident)
|
||||
{
|
||||
slot = (struct interface_tuple **)
|
||||
htab_find_slot_with_hash (interface_htab, ident,
|
||||
htab_hash_pointer (ident),
|
||||
IDENTIFIER_HASH_VALUE (ident),
|
||||
NO_INSERT);
|
||||
if (slot && *slot)
|
||||
i = (*slot)->class_name;
|
||||
@ -6997,7 +6997,7 @@ add_class (tree class_name, tree name)
|
||||
interface_htab = htab_create_ggc (31, hash_interface, eq_interface, NULL);
|
||||
slot = (struct interface_tuple **)
|
||||
htab_find_slot_with_hash (interface_htab, name,
|
||||
htab_hash_pointer (name),
|
||||
IDENTIFIER_HASH_VALUE (name),
|
||||
INSERT);
|
||||
if (!*slot)
|
||||
{
|
||||
|
@ -1,3 +1,14 @@
|
||||
2007-01-20 Andrew Pinski <pinskia@gmail.com>
|
||||
|
||||
PR objc/30479
|
||||
* objc.dg/pch: New directory.
|
||||
* objc.dg/pch/pch.exp: New file.
|
||||
* objc.dg/pch/interface-1.m: New test.
|
||||
* objc.dg/pch/interface-1.hs: New include file.
|
||||
* lib/objc.exp (objc_target_compile): Add
|
||||
"-x objective-c-header" in front of the sources if this is
|
||||
a precompiled header being compiled.
|
||||
|
||||
2007-01-20 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* gfortran.dg/array_memcpy_3.f90: New test case.
|
||||
|
@ -187,6 +187,11 @@ proc objc_target_compile { source dest type options } {
|
||||
lappend options "additional_flags=${objc_link_flags}"
|
||||
append ld_library_path ":${libobjc_dir}"
|
||||
}
|
||||
if { $type == "precompiled_header" } {
|
||||
# If we generating a precompiled header, we have say this is an
|
||||
# objective-C header
|
||||
set source [concat "-x objective-c-header" $source]
|
||||
}
|
||||
lappend options "compiler=$OBJC_UNDER_TEST"
|
||||
|
||||
set_ld_library_path_env_vars
|
||||
|
4
gcc/testsuite/objc.dg/pch/interface-1.hs
Normal file
4
gcc/testsuite/objc.dg/pch/interface-1.hs
Normal file
@ -0,0 +1,4 @@
|
||||
@interface TestClass
|
||||
+ (int) test;
|
||||
@end
|
||||
|
14
gcc/testsuite/objc.dg/pch/interface-1.m
Normal file
14
gcc/testsuite/objc.dg/pch/interface-1.m
Normal file
@ -0,0 +1,14 @@
|
||||
#include "interface-1.h"
|
||||
|
||||
@implementation TestClass
|
||||
+ (int) test
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@end
|
||||
|
||||
int main (void)
|
||||
{
|
||||
return [TestClass test];
|
||||
}
|
||||
|
43
gcc/testsuite/objc.dg/pch/pch.exp
Normal file
43
gcc/testsuite/objc.dg/pch/pch.exp
Normal file
@ -0,0 +1,43 @@
|
||||
# Copyright (C) 1997, 2002, 2003 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
# GCC testsuite for precompiled header interaction,
|
||||
# that uses the `dg.exp' driver.
|
||||
|
||||
# Load support procs.
|
||||
load_lib objc-dg.exp
|
||||
load_lib dg-pch.exp
|
||||
|
||||
# Initialize `dg'.
|
||||
dg-init
|
||||
|
||||
set old_dg_do_what_default "${dg-do-what-default}"
|
||||
|
||||
# Main loop.
|
||||
foreach test [lsort [glob -nocomplain $srcdir/$subdir/*.m]] {
|
||||
global torture_without_loops
|
||||
|
||||
# We don't try to use the loop-optimizing options, since they are highly
|
||||
# unlikely to make any difference to PCH. However, we do want to
|
||||
# add -O0 -g, since users who want PCH usually want debugging and quick
|
||||
# compiles.
|
||||
dg-pch $subdir $test [concat [list {-O0 -g}] $torture_without_loops] ".h"
|
||||
}
|
||||
|
||||
set dg-do-what-default "$old_dg_do_what_default"
|
||||
|
||||
# All done.
|
||||
dg-finish
|
Loading…
x
Reference in New Issue
Block a user