Added 'test_text' for many fixes

From-SVN: r33801
This commit is contained in:
Bruce Korb 2000-05-09 16:21:08 +00:00 committed by Bruce Korb
parent c8c6d887a5
commit 7a544ce153
3 changed files with 163 additions and 29 deletions

View File

@ -1,5 +1,7 @@
2000-05-09 Bruce Korb <bkorb@gnu.org>
* fixinc/check.tpl: Template for checking fixes
* fixinc/inclhack.def: Added 'test_text' for many fixes
* fixinc/fixinc.sco: Oh, yes, we don't need this any more.
Tue May 9 16:30:27 MET DST 2000 Jan Hubicka <jh@suse.cz>

78
gcc/fixinc/check.tpl Normal file
View File

@ -0,0 +1,78 @@
[= autogen template sh=check.sh =]
[=
#
# This file contanes the shell template to run tests on the fixes
#
=]#!/bin/sh
set -e
[ -d testdir ] && rm -rf testdir
mkdir testdir
cd testdir
TARGET_MACHINE='*'
DESTDIR=`pwd`/res
SRCDIR=`pwd`/inc
FIND_BASE='.'
export TARGET_MACHINE DESTDIR SRCDIR FIND_BASE
mkdir ${DESTDIR} ${SRCDIR}
( cd ${SRCDIR}
mkdir sys X11 Xm sundev sunwindow )
[=
_FOR fix =][=
_IF test_text _exist ! =][=
_IF replace _exist ! =]
echo No test for [=hackname=][=
_ENDIF =][=
_ELSE =]
cat >> inc/[=
_IF files _exist =][=
files[0] =][=
_ELSE =]testing.h[=
_ENDIF =] <<- '_HACK_EOF_'
#ifndef [=hackname _up=]_CHECK
#define [=hackname _up=]_CHECK
[=test_text "\t" _prefix=]
#endif /* [=hackname _up=]_CHECK */
_HACK_EOF_
[=_ENDIF =][=
/fix
=]
cd inc
find . -type f | ../../fixincl
cd ..
diff -cr inc res | \
sed -e 's;^\(\*\*\* inc/[^ ]*\) .*$;\1;' \
-e 's;^\(--- res/[^ ]*\) .*$;\1;' > NEWDIFF
echo
echo Test output check:
[=
_FOR fix =][=
_IF test_text _exist =]
fgrep [=hackname _up=]_CHECK NEWDIFF > /dev/null 2>&1 || \
echo "[=_eval hackname _get "#%32s test failed. See inc/"
_printf =][=
_IF files _exist =][=
files[0] =][=
_ELSE =]testing.h[=
_ENDIF =]"[=
_ENDIF =][=
/fix
=][=
_eval _outfile "chmod +x %s" _printf _shell
=]

View File

@ -1,7 +1,7 @@
/* -*- Mode: C -*- */
autogen definitions inclhack;
autogen definitions fixincl;
/* Define all the fixes we know about for repairing damaged headers.
Please see the README before adding or changing entries in this file.
@ -521,11 +521,12 @@ fix = {
* of struct rusage, so the prototype (added by fixproto) causes havoc.
*/
fix = {
hackname = aix_syswait;
files = sys/wait.h;
select = "bos325,";
hackname = aix_syswait;
files = sys/wait.h;
select = "bos325,";
sed = "/^extern pid_t wait3();$/i\\\n"
"struct rusage;\n";
test_text = "/* bos325, */\nextern pid_t wait3();";
};
@ -536,11 +537,12 @@ fix = {
* required by ANSI C.
*/
fix = {
hackname = aix_volatile;
files = sys/signal.h;
select = "typedef volatile int sig_atomic_t";
hackname = aix_volatile;
files = sys/signal.h;
select = "typedef volatile int sig_atomic_t";
sed = "s/typedef volatile int sig_atomic_t"
"/typedef int sig_atomic_t/";
test_text = "typedef volatile int sig_atomic_t;";
};
@ -548,12 +550,13 @@ fix = {
* Fix getopt declarations in stdio.h and stdlib.h on Alpha OSF/1 and AIX.
*/
fix = {
hackname = alpha_getopt;
files = "stdio.h";
files = "stdlib.h";
select = 'getopt\(int, char \*\[';
hackname = alpha_getopt;
files = "stdio.h";
files = "stdlib.h";
select = 'getopt\(int, char \*\[\], *char \*\)';
sed = 's/getopt(int, char \*\[\],[ ]*char \*)/'
'getopt(int, char *const[], const char *)/';
test_text = 'extern int getopt(int, char *[], char *);';
};
@ -561,10 +564,11 @@ fix = {
* Remove erroneous parentheses in sym.h on Alpha OSF/1.
*/
fix = {
hackname = alpha_parens;
files = sym.h;
select = '#ifndef\(__mips64\)';
hackname = alpha_parens;
files = sym.h;
select = '#ifndef\(__mips64\)';
sed = "s/#ifndef(__mips64)/#ifndef __mips64/";
test_text = "#ifndef(__mips64) /* bogus */\nextern int foo;\n#endif";
};
@ -576,6 +580,7 @@ fix = {
files = unistd.h;
select = "char[ \t]*\\*[\t ]*sbrk[ \t]*\\(";
sed = "s/char\\([ \t]*\\*[\t ]*sbrk[ \t]*(\\)/void\\1/";
test_text = "extern char* sbrk(ptrdiff_t increment);";
};
@ -584,10 +589,11 @@ fix = {
* hint that is specific to the Norcroft compiler.
*/
fix = {
hackname = arm_norcroft_hint;
select = "___type p_type";
files = "X11/Intrinsic.h";
hackname = arm_norcroft_hint;
select = "___type p_type";
files = "X11/Intrinsic.h";
sed = "s/___type p_type/p_type/";
test_text = "___type p_type mumble;";
};
@ -601,6 +607,10 @@ fix = {
select = "#[ \t]*define[ \t]*__wchar_t";
sed = "s/\\(#[ \t]*ifndef[ \t]*\\)__wchar_t/\\1_GCC_WCHAR_T/";
sed = "s/\\(#[ \t]*define[ \t]*\\)__wchar_t/\\1_GCC_WCHAR_T/";
test_text =
"# ifndef \t __wchar_t /* we don't have wchar_t yet, ... */\n"
"# define __wchar_t short\n"
"# endif /* __wchar_t */";
};
@ -614,6 +624,9 @@ fix = {
select = "#ifndef NOINLINE";
sed = "s|#ifndef NOINLINE"
"|#if !defined(NOINLINE) \\&\\& !defined(__GNUC__)|";
test_text =
"#ifndef NOINLINE /* ain't got no inline, so we got it */\n"
"#endif /* NOINLINE */";
};
@ -661,6 +674,8 @@ fix = {
sed = "/^[ ]*typedef[ \t][ \t]*unsigned int[ \t][ \t]*bool[ \t]*;/a\\\n"
"#endif\n";
test_text = "# define bool\t char \n"
"typedef unsigned int\tbool \t; /* bool type */";
};
@ -673,6 +688,7 @@ fix = {
select = "^[ \t]*typedef[ \t]+struct[ \t]+term[ \t]*;";
sed = "s/^[ \t]*typedef[ \t][ \t]*"
"\\(struct[ \t][ \t]*term[ \t]*;[ \t]*\\)$/\\1/";
test_text = 'typedef struct term;';
};
@ -684,6 +700,7 @@ fix = {
hackname = badquote;
files = sundev/vuid_event.h;
sed = "s/doesn't/does not/";
test_text = "/* doesn't have matched single quotes */";
};
@ -699,7 +716,7 @@ fix = {
fix = {
hackname = bad_lval;
select = "^[ \t]*#[ \t]*pragma[ \t][ \t]*extern_prefix";
select = "^[ \t]*#[ \t]*pragma[ \t]+extern_prefix";
files = libgen.h;
files = dirent.h;
@ -716,8 +733,13 @@ fix = {
files = time.h;
files = unistd.h;
sed =
"s/^[ \t]*#[ \t]*define[ \t]*\\([^(]*\\)\\(([^)]*)\\)[ \t]*"
"s/^[ \t]*#[ \t]*define[ \t]+\\([^(]*\\)\\(([^)]*)\\)[ \t]*"
"\\(_.\\)\\1\\2[ \t]*$/#define \\1 \\3\\1/";
test_text = '#pragma extern_prefix "_FOO"'"\n"
"#define something(x,y,z) _FOOsomething(x,y,z)\n"
"#define otherwise(x,y,z) BAR_Something(x,y,z)\n"
"#define mumble _FOOmumble";
};
@ -728,9 +750,10 @@ fix = {
hackname = broken_assert_stdio;
files = assert.h;
select = stderr;
bypass = "include.*stdio.h";
bypass = "include.*stdio\\.h";
sed = "1i\\\n"
"#include <stdio.h>\n";
test_text = "extern FILE* stderr;";
};
@ -741,11 +764,12 @@ fix = {
hackname = broken_assert_stdlib;
files = assert.h;
select = 'exit *\(|abort *\(';
bypass = "include.*stdlib.h";
bypass = "include.*stdlib\\.h";
sed = "1i\\\n"
"#ifdef __cplusplus\\\n"
"#include <stdlib.h>\\\n"
"#endif\n";
test_text = "extern void exit ( int );";
};
@ -759,6 +783,11 @@ fix = {
select = '^extern double cabs';
sed = '/^extern double cabs();/d';
sed = '/^extern double cabs(struct dbl_hypot);/d';
test_text = "#ifdef __STDC__\n"
"extern double cabs(struct dbl_hypot);\n"
"#else\n"
"extern double cabs();\n"
"#endif";
};
@ -773,6 +802,10 @@ fix = {
sed = "/^[ \t]*float[ \t]*fasm/i\\\n#ifdef __DECC\n";
sed = "/^[ \t]*#[ \t]*pragma[ \t]*intrinsic([ \t]*dasm/a\\\n"
"#endif\n";
test_text =
"float fasm {\n"
" ... asm stuff ...\n"
"};\n#pragma intrinsic( dasm )\n/* END ASM TEST*/";
};
@ -784,6 +817,7 @@ fix = {
files = "sunwindow/win_lock.h";
files = "sunwindow/win_cursor.h";
sed = "s/ecd.cursor/ecd_cursor/";
test_text = "#ifdef ecd.cursor\n#error bogus\n#endif /* ecd+cursor */";
};
@ -797,6 +831,7 @@ fix = {
select = 'include.*"\.\./machine/';
sed = "s,\"../machine/inline.h\",<machine/inline.h>,";
sed = "s,\"../machine/psl.h\",<machine/psl.h>,";
test_text = '# include "../machine/fumble.h"';
};
@ -804,10 +839,11 @@ fix = {
* Check for (...) in C++ code in HP/UX sys/file.h.
*/
fix = {
hackname = hp_sysfile;
files = sys/file.h;
select = "HPUX_SOURCE";
hackname = hp_sysfile;
files = sys/file.h;
select = "HPUX_SOURCE";
sed = 's/(\.\.\.)/(struct file *, ...)/';
test_text = "extern void foo(...); /* bad varargs */";
};
@ -841,13 +877,15 @@ fix = {
* HPUX 10.x sys/param.h defines MAXINT which clashes with values.h
*/
fix = {
hackname = hpux_maxint;
files = sys/param.h;
hackname = hpux_maxint;
files = sys/param.h;
select = "^#[ \t]*define[ \t]*MAXINT[ \t]";
sed = "/^#[ \t]*define[ \t]*MAXINT[ \t]/i\\\n"
"#ifndef MAXINT\n";
sed = "/^#[ \t]*define[ \t]*MAXINT[ \t]/a\\\n"
"#endif\n";
test_text = '#define MAXINT 0x7FFFFFFF';
};
@ -859,6 +897,7 @@ fix = {
files = sys/time.h;
select = "^extern struct sigevent;";
sed = "s/^extern struct sigevent;/struct sigevent;/";
test_text = 'extern struct sigevent;';
};
@ -895,8 +934,10 @@ fix = {
fix = {
hackname = hpux11_uint32_c;
files = inttypes.h;
select = "^#define UINT32_C\\(__c\\)[ \t]*__CONCAT__\\(__CONCAT_U__\\(__c\\),l\\)";
select = "^#define UINT32_C\\(__c\\)[ \t]*"
"__CONCAT__\\(__CONCAT_U__\\(__c\\),l\\)";
sed = "s/^#define UINT32_C(__c)\\([ \t]*\\)__CONCAT__(__CONCAT_U__(__c),l)/#define UINT32_C(__c)\\1__CONCAT__(__c,ul)/";
c_fix_arg = '#define UINT32_C(__c) __CONCAT__(__c,ul)';
};
/*
@ -915,10 +956,12 @@ fix = {
files = "sys/fcntl.h";
files = "sys/dirent.h";
select = "defined\(__STDC__\) && !defined\(_POSIX_SOURCE\)";
select = "!defined\(__STDC__\) && !defined\(_POSIX_SOURCE\)";
sed = "s/!defined(__STDC__) && !defined(_POSIX_SOURCE)/"
"!defined(_POSIX_SOURCE)/";
test_text = "#if !defined(__STDC__) && !defined(_POSIX_SOURCE) /* ? ! */"
"\nint foo;\n#endif";
};
/*
@ -2506,6 +2549,7 @@ fix = {
files = time.h;
select = "uint_t[ \t][ \t]*_clocks_per_sec";
sed = "s/uint_t/unsigned int/";
test_text = "uint_t\t_clocks_per_sec;";
};
@ -2562,6 +2606,10 @@ fix = {
"#else\n";
sed = "/char \\*class;/a\\\n"
"#endif\n";
test_text =
"struct {\n"
" char *class;\n"
"} mumble;\n";
};
@ -2573,6 +2621,7 @@ fix = {
files = Xm/BaseClassI.h;
bypass = "__cplusplus";
sed = "s/ class[)]/ c_class)/g";
test_text = "extern mumble (int class);\n";
};
@ -2593,6 +2642,10 @@ fix = {
"#endif\n";
sed = "s/Widget new,/Widget c_new,/g";
test_text =
"struct wedge {\n"
" Widget\told, new; /* fix the new */\n"
"};\nextern Wedged( Widget new, Widget old );";
};
@ -2608,6 +2661,7 @@ fix = {
sed = "s,^extern char \\*\tsprintf();$,#ifndef __STDC__\\\n"
"extern char *\tsprintf();\\\n"
"#endif /* !defined __STDC__ */,";
test_text = "extern char *\tsprintf();";
};
/*EOF*/