llvm-project/clang/test/Driver/response-file.c
Sean Perry 06c8b29d23 Enable creation of large response file on z/OS
Most text processing commands (eg. grep, awk) have a maximum line length limit on z/OS.  The current method of using cc -E & grep fails on z/OS because of this limit.  I'm changing the command to create the long line in the response file to use python.  This avoids the possibility of any tools blocking the generation of the large response file.  This also eliminates the need for the extra file.

Reviewed By: abhina.sreeskantharajan

Differential Revision: https://reviews.llvm.org/D100197
2021-04-12 15:06:05 -04:00

23 lines
1023 B
C

// Check that clang is able to process short response files
// Since this is a short response file, clang must not use a response file
// to pass its parameters to other tools. This is only necessary for a large
// number of parameters.
// RUN: echo "-DTEST" > %t.0.txt
// RUN: %clang -E @%t.0.txt %s -v 2>&1 | FileCheck %s -check-prefix=SHORT
// SHORT-NOT: Arguments passed via response file
// SHORT: extern int it_works;
// Check that clang is able to process long response files, routing a long
// sequence of arguments to other tools by using response files as well.
// We generate a 2MB response file to attempt to surpass any system limit.
// But there's no guarantee that we actually will (the system limit could be
// *huge*), so just check that invoking cc1 succeeds under these conditions.
//
// RUN: %python -c 'print(*("-DTEST" for x in range(300000)))' >%t.1.txt
// RUN: %clang -E @%t.1.txt %s -v 2>&1 | FileCheck %s -check-prefix=LONG
// LONG: extern int it_works;
#ifdef TEST
extern int it_works;
#endif