mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 12:00:11 -05:00
gcc/testsuite: * objc-obj-c++-shared/next-mapping.h: Add copyright header. Split type definitions and NSConstantString class into... * objc-obj-c++-shared/objc-test-suite-types.h: New. * objc-obj-c++-shared/nsconstantstring-class.h: New. * objc-obj-c++-shared/nsconstantstring-class-impl.h: New. * objc-obj-c++-shared/nsconstantstring-class-impl.m: New. * objc-obj-c++-shared/nsconstantstring-class-impl.mm: New. * objc-obj-c++-shared/next-abi.h: Add copyright header, minor update to comments. * objc-obj-c++-shared/objc-test-suite-next-encode-assist.h: Adjust encode defines for newer NeXT system headers. * obj-c++.dg/template-4.mm: Adjust to use nsconstantstring headers. * obj-c++.dg/torture/strings/string1.mm: Likewise. * objc.dg/foreach-5.m: Likewise. * objc.dg/foreach-2.m: Likewise. * objc.dg/foreach-4.m: Likewise. * objc.dg/torture/strings/string1.m: Likewise. * objc.dg/torture/strings/string2.m: Likewise. * objc.dg/torture/strings/string3.m: Likewise. * objc.dg/torture/strings/string4.m: Likewise. * obj-c++.dg/torture/strings/const-str-3.mm: Adjust to use type header and stand alone. * obj-c++.dg/strings/strings-2.mm: Likewise. * objc.dg/torture/strings/const-str-3.m: Likewise. * objc.dg/strings/strings-2.m: Likewise. * objc.dg/strings/const-str-12b.m: Likewise. From-SVN: r168653
62 lines
1.8 KiB
Objective-C
62 lines
1.8 KiB
Objective-C
/* A small NSConstantString implementation for use with the NeXT runtime.
|
|
Copyright (C) 2011 Free Software Foundation, Inc.
|
|
|
|
Contributed by Iain Sandoe <iains@gcc.gnu.org>
|
|
|
|
This file is part of GCC.
|
|
|
|
GCC 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 3, or (at your option)
|
|
any later version.
|
|
|
|
GCC 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 GCC; see the file COPYING3. If not see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#ifdef __NEXT_RUNTIME__
|
|
|
|
#include "nsconstantstring-class.h"
|
|
#include <string.h>
|
|
|
|
/* On full-fledged Mac OS X systems, NSConstantString is provided
|
|
as part of the Foundation framework. However, on bare Darwin systems,
|
|
Foundation is not included, and hence there is no NSConstantString
|
|
implementation to link against.
|
|
|
|
This code is derived from the GNU runtime's NXConstantString implementation.
|
|
*/
|
|
|
|
@implementation NSConstantString
|
|
/* NeXT requires this or forward: */
|
|
+initialize { return self; }
|
|
|
|
-(const char *) cString
|
|
{
|
|
return (c_string);
|
|
}
|
|
|
|
-(unsigned int) length
|
|
{
|
|
return (len);
|
|
}
|
|
@end
|
|
|
|
TNS_STRING_REF_T _NSConstantStringClassReference;
|
|
|
|
/* The NSConstantString metaclass will need to be initialized before we can
|
|
send messages to strings. */
|
|
|
|
void objc_constant_string_init (void) __attribute__((constructor));
|
|
void objc_constant_string_init (void) {
|
|
memcpy (&_NSConstantStringClassReference,
|
|
objc_getClass ("NSConstantString"),
|
|
sizeof (_NSConstantStringClassReference));
|
|
}
|
|
#endif
|