aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-04-27 07:03:46 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-04-27 07:03:46 -0400
commitba6aa38e3d6bece9171dfab434d0821690eade53 (patch)
tree021691bcfb519d069829ad2334cd43931dd8fd6b /gcc
parent4cb8c14b60e9026068bafe4f4f9c95da525684e7 (diff)
downloadgcc-ba6aa38e3d6bece9171dfab434d0821690eade53.zip
gcc-ba6aa38e3d6bece9171dfab434d0821690eade53.tar.gz
gcc-ba6aa38e3d6bece9171dfab434d0821690eade53.tar.bz2
(deps_output): Don't generate overly long output lines.
Do not invoke self recursively with spacer == 0; this simplifies the code a bit. From-SVN: r9501
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cccp.c24
1 files changed, 14 insertions, 10 deletions
diff --git a/gcc/cccp.c b/gcc/cccp.c
index 45b1949..a794987 100644
--- a/gcc/cccp.c
+++ b/gcc/cccp.c
@@ -9890,8 +9890,7 @@ append_include_chain (first, last)
/* Add output to `deps_buffer' for the -M switch.
STRING points to the text to be output.
- SPACER is ':' for targets, ' ' for dependencies, zero for text
- to be inserted literally. */
+ SPACER is ':' for targets, ' ' for dependencies. */
static void
deps_output (string, spacer)
@@ -9906,25 +9905,30 @@ deps_output (string, spacer)
#ifndef MAX_OUTPUT_COLUMNS
#define MAX_OUTPUT_COLUMNS 72
#endif
- if (spacer
- && deps_column > 0
- && (deps_column + size) > MAX_OUTPUT_COLUMNS)
- {
- deps_output (" \\\n ", 0);
- deps_column = 0;
+ if (MAX_OUTPUT_COLUMNS - 1 /*spacer*/ - 2 /*` \'*/ < deps_column + size
+ && 1 < deps_column) {
+ bcopy (" \\\n ", &deps_buffer[deps_size], 4);
+ deps_size += 4;
+ deps_column = 1;
+ if (spacer == ' ')
+ spacer = 0;
}
if (deps_size + size + 8 > deps_allocated_size) {
deps_allocated_size = (deps_size + size + 50) * 2;
deps_buffer = xrealloc (deps_buffer, deps_allocated_size);
}
- if (spacer == ' ' && deps_column > 0)
+ if (spacer == ' ') {
deps_buffer[deps_size++] = ' ';
+ deps_column++;
+ }
bcopy (string, &deps_buffer[deps_size], size);
deps_size += size;
deps_column += size;
- if (spacer == ':')
+ if (spacer == ':') {
deps_buffer[deps_size++] = ':';
+ deps_column++;
+ }
deps_buffer[deps_size] = 0;
}