Summary: We're trying to use the --config options to pass distro specific options for Fedora via the CFLAGS variable. However, some projects end up using the CFLAGS variable multiple times in their command line, which leads to an error when --config is used. This patch resolves this issue by allowing more than one --config option on the command line as long as the file names are the same. Reviewers: sepavloff, hfinkel Reviewed By: sepavloff Subscribers: cfe-commits, llvm-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D81424
79 lines
3.4 KiB
C
79 lines
3.4 KiB
C
//--- Config file search directories
|
|
//
|
|
// RUN: %clang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-DIRS
|
|
// CHECK-DIRS: System configuration file directory: {{.*}}/Inputs/config
|
|
// CHECK-DIRS: User configuration file directory: {{.*}}/Inputs/config2
|
|
|
|
|
|
//--- Config file (full path) in output of -###
|
|
//
|
|
// RUN: %clang --config %S/Inputs/config-1.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-HHH
|
|
// CHECK-HHH: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
|
|
// CHECK-HHH: -Werror
|
|
// CHECK-HHH: -std=c99
|
|
|
|
|
|
//--- Config file (full path) in output of -v
|
|
//
|
|
// RUN: %clang --config %S/Inputs/config-1.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-V
|
|
// CHECK-V: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
|
|
// CHECK-V: -Werror
|
|
// CHECK-V: -std=c99
|
|
|
|
|
|
//--- Config file in output of -###
|
|
//
|
|
// RUN: %clang --config-system-dir=%S/Inputs --config-user-dir= --config config-1.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-HHH2
|
|
// CHECK-HHH2: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
|
|
// CHECK-HHH2: -Werror
|
|
// CHECK-HHH2: -std=c99
|
|
|
|
|
|
//--- Config file in output of -v
|
|
//
|
|
// RUN: %clang --config-system-dir=%S/Inputs --config-user-dir= --config config-1.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-V2
|
|
// CHECK-V2: Configuration file: {{.*}}Inputs{{.}}config-1.cfg
|
|
// CHECK-V2: -Werror
|
|
// CHECK-V2: -std=c99
|
|
|
|
|
|
//--- Nested config files
|
|
//
|
|
// RUN: %clang --config-system-dir=%S/Inputs --config-user-dir= --config config-2.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED
|
|
// CHECK-NESTED: Configuration file: {{.*}}Inputs{{.}}config-2.cfg
|
|
// CHECK-NESTED: -Wundefined-func-template
|
|
|
|
// RUN: %clang --config-system-dir=%S/Inputs --config-user-dir= --config config-2.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED2
|
|
// CHECK-NESTED2: Configuration file: {{.*}}Inputs{{.}}config-2.cfg
|
|
// CHECK-NESTED2: -Wundefined-func-template
|
|
|
|
|
|
// RUN: %clang --config %S/Inputs/config-2a.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTEDa
|
|
// CHECK-NESTEDa: Configuration file: {{.*}}Inputs{{.}}config-2a.cfg
|
|
// CHECK-NESTEDa: -isysroot
|
|
// CHECK-NESTEDa-SAME: /opt/data
|
|
|
|
// RUN: %clang --config-system-dir=%S/Inputs --config-user-dir= --config config-2a.cfg -S %s -### 2>&1 | FileCheck %s -check-prefix CHECK-NESTED2a
|
|
// CHECK-NESTED2a: Configuration file: {{.*}}Inputs{{.}}config-2a.cfg
|
|
// CHECK-NESTED2a: -isysroot
|
|
// CHECK-NESTED2a-SAME: /opt/data
|
|
|
|
|
|
//--- Unused options in config file do not produce warnings
|
|
//
|
|
// RUN: %clang --config %S/Inputs/config-4.cfg -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-UNUSED
|
|
// CHECK-UNUSED-NOT: argument unused during compilation:
|
|
// CHECK-UNUSED-NOT: 'linker' input unused
|
|
|
|
|
|
//--- User directory is searched first.
|
|
//
|
|
// RUN: %clang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 --config config-4 -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-PRECEDENCE
|
|
// CHECK-PRECEDENCE: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg
|
|
// CHECK-PRECEDENCE: -Wall
|
|
|
|
|
|
//--- Duplicate --config options are allowed if the value is the same
|
|
// RUN: %clang --config-system-dir=%S/Inputs/config --config-user-dir=%S/Inputs/config2 --config config-4 --config config-4 -S %s -o /dev/null -v 2>&1 | FileCheck %s -check-prefix CHECK-SAME-CONFIG
|
|
// CHECK-SAME-CONFIG: Configuration file: {{.*}}Inputs{{.}}config2{{.}}config-4.cfg
|