aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2000-06-01 20:06:57 +0000
committerZack Weinberg <zack@gcc.gnu.org>2000-06-01 20:06:57 +0000
commitd7a2e0f70bda2f8a6bc82ca8da8cd069a4dbf954 (patch)
treef453ae8daad4bc2e728ee46239aaa1feccfd364b /gcc
parent0ba154aa230cbd0dc92a8500919922a378df4767 (diff)
downloadgcc-d7a2e0f70bda2f8a6bc82ca8da8cd069a4dbf954.zip
gcc-d7a2e0f70bda2f8a6bc82ca8da8cd069a4dbf954.tar.gz
gcc-d7a2e0f70bda2f8a6bc82ca8da8cd069a4dbf954.tar.bz2
[multiple changes]
2000-06-01 Zack Weinberg <zack@wolery.cumb.org> * 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 <lauras@softhome.net> * cppfiles.c: conditionally define O_BINARY. (open_include_file): pass O_BINARY to open(). From-SVN: r34344
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog12
-rw-r--r--gcc/cppfiles.c12
-rw-r--r--gcc/cpplex.c4
-rw-r--r--gcc/cpplib.c22
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/cpp-tradwarn2.c2
6 files changed, 30 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 098343e..d564e55 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,15 @@
+2000-06-01 Zack Weinberg <zack@wolery.cumb.org>
+
+ * 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 <lauras@softhome.net>
+
+ * cppfiles.c: conditionally define O_BINARY.
+ (open_include_file): pass O_BINARY to open().
+
2000-06-01 Richard Henderson <rth@cygnus.com>
* i960.c (i960_br_predict_opcode): Remove.
diff --git a/gcc/cppfiles.c b/gcc/cppfiles.c
index 676c9d5..71bb657 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 b35f298..1dd3e9a 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 e339c1e..529d1bb 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 <xyz.h>' and generates a warning. */
- cpp_warning (pfile, "#%s filename is obsolete, use #%s <filename.h>",
- name, name);
-
- /* Rewrite the token to <xyz.h>. */
- 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 <FILENAME>", name);
CPP_SET_WRITTEN (pfile, old_written);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index c963207..14acbe9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2000-06-01 Zack Weinberg <zack@wolery.cumb.org>
+
+ * gcc.dg/cpp-tradwarn2.c: Update egrep pattern.
+
2000-05-29 Zack Weinberg <zack@wolery.cumb.org>
* 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 783b7bc..303b0ff 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" } */
}