From d7a2e0f70bda2f8a6bc82ca8da8cd069a4dbf954 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Thu, 1 Jun 2000 20:06:57 +0000 Subject: [PATCH] [multiple changes] 2000-06-01 Zack Weinberg * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve error message. * cpplib.c (parse_include): Remove support for VAX-C "#include starlet" misfeature. * gcc.dg/cpp-tradwarn2.c: Update egrep pattern. 2000-05-31 Laurynas Biveinis * cppfiles.c: conditionally define O_BINARY. (open_include_file): pass O_BINARY to open(). From-SVN: r34344 --- gcc/ChangeLog | 12 ++++++++++++ gcc/cppfiles.c | 12 ++++++++++-- gcc/cpplex.c | 4 ++-- gcc/cpplib.c | 22 +--------------------- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/cpp-tradwarn2.c | 2 +- 6 files changed, 30 insertions(+), 26 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 098343e60e2c..d564e553b4c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2000-06-01 Zack Weinberg + + * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve + error message. + * cpplib.c (parse_include): Remove support for VAX-C + "#include starlet" misfeature. + +2000-05-31 Laurynas Biveinis + + * cppfiles.c: conditionally define O_BINARY. + (open_include_file): pass O_BINARY to open(). + 2000-06-01 Richard Henderson * i960.c (i960_br_predict_opcode): Remove. diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c index 676c9d56c4a9..71bb657c685b 100644 --- a/gcc/cppfiles.c +++ b/gcc/cppfiles.c @@ -39,6 +39,10 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ # define MMAP_THRESHOLD 0 #endif +#ifndef O_BINARY +# define O_BINARY 0 +#endif + static IHASH *redundant_include_p PARAMS ((IHASH *, struct file_name_list *)); static IHASH *make_IHASH PARAMS ((const char *, const char *, struct file_name_list *, @@ -216,14 +220,18 @@ make_IHASH (name, fname, path, hash, slot) paranoia is a virtue). Use the three-argument form of open even though we aren't - specifying O_CREAT, to defend against broken system headers. */ + specifying O_CREAT, to defend against broken system headers. + + O_BINARY tells some runtime libraries (notably DJGPP) not to do + newline translation; we can handle DOS line breaks just fine + ourselves. */ static inline int open_include_file (pfile, filename) cpp_reader *pfile ATTRIBUTE_UNUSED; const char *filename; { - return open (filename, O_RDONLY|O_NOCTTY, 0666); + return open (filename, O_RDONLY|O_NOCTTY|O_BINARY, 0666); } /* Search for include file FNAME in the include chain starting at diff --git a/gcc/cpplex.c b/gcc/cpplex.c index b35f2989786a..1dd3e9a6a9fb 100644 --- a/gcc/cpplex.c +++ b/gcc/cpplex.c @@ -1699,9 +1699,9 @@ maybe_macroexpand (pfile, written) CPP_PUTC (pfile, ' '); /* K+R treated this as a hard error. */ - if (CPP_OPTION (pfile, warn_traditional)) + if (CPP_WTRADITIONAL (pfile)) cpp_warning (pfile, - "traditional C rejects function macro %s in non-function context", + "function macro %s must be used with arguments in traditional C", hp->name); return 0; } diff --git a/gcc/cpplib.c b/gcc/cpplib.c index e339c1eaab34..529d1bb349f9 100644 --- a/gcc/cpplib.c +++ b/gcc/cpplib.c @@ -411,27 +411,7 @@ parse_include (pfile, name) len = CPP_WRITTEN (pfile) - old_written; - if (token == CPP_STRING) - ; /* No special treatment required. */ -#ifdef VMS - else if (token == CPP_NAME) - { - /* Support '#include xyz' like VAX-C. It is taken as - '#include ' and generates a warning. */ - cpp_warning (pfile, "#%s filename is obsolete, use #%s ", - name, name); - - /* Rewrite the token to . */ - CPP_RESERVE (pfile, 4); - len += 4; - memmove (pfile->token_buffer + old_written + 1, - pfile->token_buffer + old_written, - CPP_WRITTEN (pfile) - old_written); - pfile->token_buffer[old_written] = '<'; - CPP_PUTS_Q (pfile, ".h>", 2); - } -#endif - else + if (token != CPP_STRING) { cpp_error (pfile, "#%s expects \"FILENAME\" or ", name); CPP_SET_WRITTEN (pfile, old_written); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c963207532c8..14acbe9720a0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2000-06-01 Zack Weinberg + + * gcc.dg/cpp-tradwarn2.c: Update egrep pattern. + 2000-05-29 Zack Weinberg * gcc.dg/cpp-mi.c: Add another case, cpp-mix.h, where the diff --git a/gcc/testsuite/gcc.dg/cpp-tradwarn2.c b/gcc/testsuite/gcc.dg/cpp-tradwarn2.c index 783b7bce04d7..303b0ff2bb14 100644 --- a/gcc/testsuite/gcc.dg/cpp-tradwarn2.c +++ b/gcc/testsuite/gcc.dg/cpp-tradwarn2.c @@ -10,5 +10,5 @@ enum { SIGN_EXTEND = 23 }; int fun(void) { - return SIGN_EXTEND; /* { dg-warning "in non-function context" } */ + return SIGN_EXTEND; /* { dg-warning "must be used with arguments" } */ }