mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 07:16:41 +00:00

When running tests in compiler-rt using the lit internal shell with the following command: ``` LIT_USE_INTERNAL_SHELL=1 ninja check-compiler-rt ``` one common error that occurs is: ``` 'XRAY_OPTIONS=patch_premain=false:verbosity=1': command not found ``` This error, along with over 50 similar "environment variable not found" errors, appears across 35 files in complier-rt. These errors happen because the environment variables are not being set correctly when the internal shell is used, leading to commands failing due to unrecognized environment variables. This patch addresses the issue by using the `env` command to properly set the environment variables before running the tests. By explicitly setting the environment variables through `env`, the internal shell can correctly interpret and apply them, allowing the tests to pass. fixes: #102395 [link to RFC](https://discourse.llvm.org/t/rfc-enabling-the-lit-internal-shell-by-default/80179)
40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
// RUN: %clang_dfsan -gmlt -mllvm -dfsan-track-origins=1 %s -o %t
|
|
//
|
|
// RUN: %run %t >%t.out 2>&1
|
|
// RUN: FileCheck %s < %t.out
|
|
//
|
|
// RUN: env DFSAN_OPTIONS=origin_history_size=2 %run %t >%t.out 2>&1
|
|
// RUN: FileCheck %s --check-prefix=CHECK2 < %t.out
|
|
//
|
|
// RUN: env DFSAN_OPTIONS=origin_history_size=0 %run %t >%t.out 2>&1
|
|
// RUN: FileCheck %s --check-prefix=CHECK0 < %t.out
|
|
|
|
#include <sanitizer/dfsan_interface.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
__attribute__((noinline)) int foo(int a, int b) { return a + b; }
|
|
|
|
int main(int argc, char *argv[]) {
|
|
int a = 10;
|
|
dfsan_set_label(8, &a, sizeof(a));
|
|
int c = 0;
|
|
for (int i = 0; i < 17; ++i) {
|
|
c = foo(a, c);
|
|
printf("%lx", (unsigned long)&c);
|
|
}
|
|
dfsan_print_origin_trace(&c, NULL);
|
|
}
|
|
|
|
// CHECK: Taint value 0x8 {{.*}} origin tracking ()
|
|
// CHECK-COUNT 14: Origin value: {{.*}}, Taint value was stored to memory at
|
|
// CHECK: Origin value: {{.*}}, Taint value was created at
|
|
|
|
// CHECK2: Taint value 0x8 {{.*}} origin tracking ()
|
|
// CHECK2: Origin value: {{.*}}, Taint value was stored to memory at
|
|
// CHECK2: Origin value: {{.*}}, Taint value was created at
|
|
|
|
// CHECK0: Taint value 0x8 {{.*}} origin tracking ()
|
|
// CHECK0-COUNT 16: Origin value: {{.*}}, Taint value was stored to memory at
|
|
// CHECK0: Origin value: {{.*}}, Taint value was created at
|