From 830465c6ea14fa89df9b74106674d7ecf5b4ab31 Mon Sep 17 00:00:00 2001 From: Markus Milleder Date: Thu, 6 Mar 2008 19:08:40 +0100 Subject: [PATCH] re PR preprocessor/35458 (Dependency generation (-M) does not quote '#' in filenames) libcpp 2008-03-06 Markus Milleder PR preprocessor/35458 * mkdeps.c (munge): Quote '#' with a '\'. gcc/testsuite 2008-03-06 Markus Milleder PR preprocessor/35458 * gcc.dg/cpp/cmdlne-M-2.c: New file. * gcc.dg/cpp/cmdlne-M-2#.h: New file. * gcc.dg/cpp/#cmdlne-M-2.h: New file. From-SVN: r132982 --- gcc/testsuite/ChangeLog | 7 +++++++ gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h | 1 + gcc/testsuite/gcc.dg/cpp/cmdlne-M-2#.h | 1 + gcc/testsuite/gcc.dg/cpp/cmdlne-M-2.c | 14 ++++++++++++++ libcpp/ChangeLog | 5 +++++ libcpp/mkdeps.c | 9 +++++++++ 6 files changed, 37 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h create mode 100644 gcc/testsuite/gcc.dg/cpp/cmdlne-M-2#.h create mode 100644 gcc/testsuite/gcc.dg/cpp/cmdlne-M-2.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 396fa3e7439..38bf08d7db9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2008-03-06 Markus Milleder + + PR preprocessor/35458 + * gcc.dg/cpp/cmdlne-M-2.c: New file. + * gcc.dg/cpp/cmdlne-M-2#.h: New file. + * gcc.dg/cpp/#cmdlne-M-2.h: New file. + 2008-03-06 Tom Tromey * lib/treelang-dg.exp, lib/treelang.exp: Delete. diff --git a/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h b/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h new file mode 100644 index 00000000000..40a8c178f10 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/#cmdlne-M-2.h @@ -0,0 +1 @@ +/* empty */ diff --git a/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2#.h b/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2#.h new file mode 100644 index 00000000000..40a8c178f10 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2#.h @@ -0,0 +1 @@ +/* empty */ diff --git a/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2.c b/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2.c new file mode 100644 index 00000000000..6479822f963 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cpp/cmdlne-M-2.c @@ -0,0 +1,14 @@ +/* Copyright (C) 2008 Free Software Foundation, Inc. */ + +/* { dg-do preprocess } */ +/* { dg-options "-M" } */ + +/* Test that dependency output suppresses warnings by implying -w. */ + +#include "#cmdlne-M-2.h" +#include "cmdlne-M-2#.h" + +/* { dg-final { scan-file cmdlne-M-2.i "(^|\\n)cmdlne-M-2.o:" } } + { dg-final { scan-file cmdlne-M-2.i "cmdlne-M-2.c" } } + { dg-final { scan-file cmdlne-M-2.i "\\\\#cmdlne-M-2.h" } } + { dg-final { scan-file cmdlne-M-2.i "cmdlne-M-2\\\\#.h" } } */ diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 5b2258e4b1d..a6be847c546 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,8 @@ +2008-03-06 Markus Milleder + + PR preprocessor/35458 + * mkdeps.c (munge): Quote '#' with a '\'. + 2008-02-27 Ralf Wildenhues PR preprocessor/35379 diff --git a/libcpp/mkdeps.c b/libcpp/mkdeps.c index 11488ce908f..23d9dc1653d 100644 --- a/libcpp/mkdeps.c +++ b/libcpp/mkdeps.c @@ -79,6 +79,11 @@ munge (const char *filename) /* '$' is quoted by doubling it. */ len++; break; + + case '#': + /* '#' is quoted with a backslash. */ + len++; + break; } } @@ -100,6 +105,10 @@ munge (const char *filename) *dst++ = '$'; break; + case '#': + *dst++ = '\\'; + break; + default: /* nothing */; }