re PR c/5059 (Compiling s/w containing the use of DIR.H fails on other stat-calls)
* config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX. * doc/extend.texi (Tru64 Pragmas): Reflect this. * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma extern_prefix support for Tru64 UNIX V5 <sys/stat.h>. * fixinc/fixincl.x: Regenerate. * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New testcase. Fixes PR c/5059, c/6126, other/9671. testsuite: * g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX. * gcc.dg/pragma-ep-1.c: Likewise. From-SVN: r63370
This commit is contained in:
parent
391cd0955e
commit
f8dc212b5d
@ -1,3 +1,16 @@
|
||||
2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||
|
||||
* config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
|
||||
__EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
|
||||
* doc/extend.texi (Tru64 Pragmas): Reflect this.
|
||||
|
||||
* fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
|
||||
extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
|
||||
* fixinc/fixincl.x: Regenerate.
|
||||
* fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
|
||||
testcase.
|
||||
Fixes PR c/5059, c/6126, other/9671.
|
||||
|
||||
2003-02-24 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
* gcc.c (do_spec_1) ['{']: Handle pending argument upon return
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler, for DEC Alpha on OSF/1.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
@ -32,21 +32,21 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* Names to predefine in the preprocessor for this target machine. */
|
||||
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do { \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("SYSTYPE_BSD"); \
|
||||
builtin_define ("_SYSTYPE_BSD"); \
|
||||
builtin_define ("__osf__"); \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
builtin_define ("__EXTERN_PREFIX"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=xpg4"); \
|
||||
/* Tru64 UNIX V5 has a 16 byte long \
|
||||
double type and requires __X_FLOAT \
|
||||
to be defined for <math.h>. */ \
|
||||
if (LONG_DOUBLE_TYPE_SIZE == 128) \
|
||||
builtin_define ("__X_FLOAT"); \
|
||||
#define TARGET_OS_CPP_BUILTINS() \
|
||||
do { \
|
||||
builtin_define_std ("unix"); \
|
||||
builtin_define_std ("SYSTYPE_BSD"); \
|
||||
builtin_define ("_SYSTYPE_BSD"); \
|
||||
builtin_define ("__osf__"); \
|
||||
builtin_define ("_LONGLONG"); \
|
||||
builtin_define ("__PRAGMA_EXTERN_PREFIX"); \
|
||||
builtin_assert ("system=unix"); \
|
||||
builtin_assert ("system=xpg4"); \
|
||||
/* Tru64 UNIX V5 has a 16 byte long \
|
||||
double type and requires __X_FLOAT \
|
||||
to be defined for <math.h>. */ \
|
||||
if (LONG_DOUBLE_TYPE_SIZE == 128) \
|
||||
builtin_define ("__X_FLOAT"); \
|
||||
} while (0)
|
||||
|
||||
/* Accept DEC C flags for multithreaded programs. We use _PTHREAD_USE_D4
|
||||
|
@ -6588,7 +6588,8 @@ empty string.
|
||||
This pragma is similar in intent to to the asm labels extension
|
||||
(@pxref{Asm Labels}) in that the system programmer wants to change
|
||||
the assembly-level ABI without changing the source-level API. The
|
||||
preprocessor defines @code{__EXTERN_PREFIX} if the pragma is available.
|
||||
preprocessor defines @code{__PRAGMA_EXTERN_PREFIX} if the pragma is
|
||||
available.
|
||||
@end table
|
||||
|
||||
@node Unnamed Fields
|
||||
|
@ -709,6 +709,43 @@ static const char* apzAlpha___AssertPatch[] = {
|
||||
"__assert(const char *, const char *, int)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha___Extern_Prefix fix
|
||||
*/
|
||||
tSCC zAlpha___Extern_PrefixName[] =
|
||||
"alpha___extern_prefix";
|
||||
|
||||
/*
|
||||
* File name selection pattern
|
||||
*/
|
||||
tSCC zAlpha___Extern_PrefixList[] =
|
||||
"|sys/stat.h|";
|
||||
/*
|
||||
* Machine/OS name selection pattern
|
||||
*/
|
||||
tSCC* apzAlpha___Extern_PrefixMachs[] = {
|
||||
"alpha*-dec-osf5*",
|
||||
(const char*)NULL };
|
||||
|
||||
/*
|
||||
* content selection pattern - do fix if pattern found
|
||||
*/
|
||||
tSCC zAlpha___Extern_PrefixSelect0[] =
|
||||
"#[ \t]*if[ \t]*defined\\(__DECC\\)";
|
||||
|
||||
#define ALPHA___EXTERN_PREFIX_TEST_CT 1
|
||||
static tTestDesc aAlpha___Extern_PrefixTests[] = {
|
||||
{ TT_EGREP, zAlpha___Extern_PrefixSelect0, (regex_t*)NULL }, };
|
||||
|
||||
/*
|
||||
* Fix Command Arguments for Alpha___Extern_Prefix
|
||||
*/
|
||||
static const char* apzAlpha___Extern_PrefixPatch[] = {
|
||||
"format",
|
||||
"%0 || defined(__PRAGMA_EXTERN_PREFIX)",
|
||||
(char*)NULL };
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Description of Alpha_Assert fix
|
||||
@ -5788,6 +5825,7 @@ typedef enum {
|
||||
AIX_SYSWAIT_FIXIDX,
|
||||
AIX_VOLATILE_FIXIDX,
|
||||
ALPHA___ASSERT_FIXIDX,
|
||||
ALPHA___EXTERN_PREFIX_FIXIDX,
|
||||
ALPHA_ASSERT_FIXIDX,
|
||||
ALPHA_GETOPT_FIXIDX,
|
||||
ALPHA_PARENS_FIXIDX,
|
||||
@ -5993,6 +6031,11 @@ tFixDesc fixDescList[ FIX_COUNT ] = {
|
||||
ALPHA___ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___AssertTests, apzAlpha___AssertPatch, 0 },
|
||||
|
||||
{ zAlpha___Extern_PrefixName, zAlpha___Extern_PrefixList,
|
||||
apzAlpha___Extern_PrefixMachs,
|
||||
ALPHA___EXTERN_PREFIX_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
aAlpha___Extern_PrefixTests, apzAlpha___Extern_PrefixPatch, 0 },
|
||||
|
||||
{ zAlpha_AssertName, zAlpha_AssertList,
|
||||
apzAlpha_AssertMachs,
|
||||
ALPHA_ASSERT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE,
|
||||
|
@ -522,6 +522,22 @@ fix = {
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Obey __PRAGMA_EXTERN_PREFIX for Tru64 UNIX V5 <sys/stat.h>.
|
||||
*/
|
||||
fix = {
|
||||
hackname = alpha___extern_prefix;
|
||||
files = sys/stat.h;
|
||||
select = "#[ \t]*if[ \t]*defined\\(__DECC\\)";
|
||||
|
||||
mach = "alpha*-dec-osf5*";
|
||||
c_fix = format;
|
||||
c_fix_arg = "%0 || defined(__PRAGMA_EXTERN_PREFIX)";
|
||||
|
||||
test_text = "# if defined(__DECC)";
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Fix assert macro in assert.h on Alpha OSF/1.
|
||||
* The superfluous int cast breaks C++.
|
||||
|
@ -1,3 +1,8 @@
|
||||
2003-02-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
|
||||
|
||||
* g++.dg/other/pragma-ep-1.C: Test for __PRAGMA_EXTERN_PREFIX.
|
||||
* gcc.dg/pragma-ep-1.c: Likewise.
|
||||
|
||||
2003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
|
||||
|
||||
PR c++/9602
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* { dg-final { scan-assembler "four" } } */
|
||||
/* { dg-final { scan-assembler-not "_four" } } */
|
||||
|
||||
#ifndef __EXTERN_PREFIX
|
||||
#ifndef __PRAGMA_EXTERN_PREFIX
|
||||
#error
|
||||
#endif
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
/* { dg-final { scan-assembler "four" } } */
|
||||
/* { dg-final { scan-assembler-not "_four" } } */
|
||||
|
||||
#ifndef __EXTERN_PREFIX
|
||||
#ifndef __PRAGMA_EXTERN_PREFIX
|
||||
#error
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user