[PATCH] D139652: Add the thread sanitizer support for X86_64 WatchOS simulators
yfyang created this revision. yfyang added a reviewer: jyknight. Herald added a subscriber: pengfei. Herald added a project: All. yfyang requested review of this revision. Herald added subscribers: cfe-commits, MaskRay. Herald added a project: clang. Thread sanitizer for x86_64 architecutre is supported currently for TVOS and iOS simulators. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D139652 Files: clang/lib/Driver/ToolChains/Darwin.cpp clang/test/Driver/fsanitize.c Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -463,6 +463,9 @@ // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option +// RUN: %clang --target=x86_64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-WATCHOSSIMULATOR +// CHECK-TSAN-X86-64-WATCHOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-TVOSSIMULATOR // CHECK-TSAN-X86-64-TVOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3279,7 +3279,8 @@ if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator()) { + } else if (isTargetIOSSimulator() || isTargetTvOSSimulator() || + isTargetWatchOSSimulator()) { if (IsX86_64) Res |= SanitizerKind::Thread; } Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -463,6 +463,9 @@ // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option +// RUN: %clang --target=x86_64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-WATCHOSSIMULATOR +// CHECK-TSAN-X86-64-WATCHOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-TVOSSIMULATOR // CHECK-TSAN-X86-64-TVOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3279,7 +3279,8 @@ if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator()) { + } else if (isTargetIOSSimulator() || isTargetTvOSSimulator() || + isTargetWatchOSSimulator()) { if (IsX86_64) Res |= SanitizerKind::Thread; } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D139652: Add the thread sanitizer support for X86_64 WatchOS simulators
yfyang updated this revision to Diff 481679. yfyang added a comment. Addressing comments. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139652/new/ https://reviews.llvm.org/D139652 Files: clang/lib/Driver/ToolChains/Darwin.cpp clang/test/Driver/fsanitize.c Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -460,6 +460,15 @@ // RUN: %clang --target=arm64-apple-macos -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-MACOS // CHECK-TSAN-ARM64-MACOS-NOT: unsupported option +// RUN: %clang --target=arm64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-IOSSIMULATOR +// CHECK-TSAN-ARM64-IOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-WATCHOSSIMULATOR +// CHECK-TSAN-ARM64-WATCHOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-TVOSSIMULATOR +// CHECK-TSAN-ARM64-TVOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,12 +3277,10 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { + if ((IsX86_64 || IsAArch64) && (isTargetMacOSBased() || +isTargetIOSSimulator() || isTargetTvOSSimulator() || +isTargetWatchOSSimulator()) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator() || - isTargetWatchOSSimulator()) { -if (IsX86_64) - Res |= SanitizerKind::Thread; } return Res; } Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -460,6 +460,15 @@ // RUN: %clang --target=arm64-apple-macos -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-MACOS // CHECK-TSAN-ARM64-MACOS-NOT: unsupported option +// RUN: %clang --target=arm64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-IOSSIMULATOR +// CHECK-TSAN-ARM64-IOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-WATCHOSSIMULATOR +// CHECK-TSAN-ARM64-WATCHOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-TVOSSIMULATOR +// CHECK-TSAN-ARM64-TVOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,12 +3277,10 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { + if ((IsX86_64 || IsAArch64) && (isTargetMacOSBased() || +isTargetIOSSimulator() || isTargetTvOSSimulator() || +isTargetWatchOSSimulator()) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator() || - isTargetWatchOSSimulator()) { -if (IsX86_64) - Res |= SanitizerKind::Thread; } return Res; } ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D139652: Add the thread sanitizer support for X86_64 WatchOS simulators
yfyang updated this revision to Diff 481682. yfyang added a comment. Formatting Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139652/new/ https://reviews.llvm.org/D139652 Files: clang/lib/Driver/ToolChains/Darwin.cpp Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,9 +3277,9 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && (isTargetMacOSBased() || -isTargetIOSSimulator() || isTargetTvOSSimulator() || -isTargetWatchOSSimulator()) { + if ((IsX86_64 || IsAArch64) && + (isTargetMacOSBased() || isTargetIOSSimulator() || + isTargetTvOSSimulator() || isTargetWatchOSSimulator())) { Res |= SanitizerKind::Thread; } return Res; Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,9 +3277,9 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && (isTargetMacOSBased() || -isTargetIOSSimulator() || isTargetTvOSSimulator() || -isTargetWatchOSSimulator()) { + if ((IsX86_64 || IsAArch64) && + (isTargetMacOSBased() || isTargetIOSSimulator() || + isTargetTvOSSimulator() || isTargetWatchOSSimulator())) { Res |= SanitizerKind::Thread; } return Res; ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D139652: Add the thread sanitizer support for X86_64 WatchOS simulators
yfyang updated this revision to Diff 481684. yfyang added a comment. - Add TSAN support for Apple arm64 simulators - Formatting Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D139652/new/ https://reviews.llvm.org/D139652 Files: clang/lib/Driver/ToolChains/Darwin.cpp clang/test/Driver/fsanitize.c Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -460,9 +460,21 @@ // RUN: %clang --target=arm64-apple-macos -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-MACOS // CHECK-TSAN-ARM64-MACOS-NOT: unsupported option +// RUN: %clang --target=arm64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-IOSSIMULATOR +// CHECK-TSAN-ARM64-IOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-WATCHOSSIMULATOR +// CHECK-TSAN-ARM64-WATCHOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-TVOSSIMULATOR +// CHECK-TSAN-ARM64-TVOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option +// RUN: %clang --target=x86_64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-WATCHOSSIMULATOR +// CHECK-TSAN-X86-64-WATCHOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-TVOSSIMULATOR // CHECK-TSAN-X86-64-TVOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,11 +3277,10 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { + if ((IsX86_64 || IsAArch64) && + (isTargetMacOSBased() || isTargetIOSSimulator() || + isTargetTvOSSimulator() || isTargetWatchOSSimulator())) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator()) { -if (IsX86_64) - Res |= SanitizerKind::Thread; } return Res; } Index: clang/test/Driver/fsanitize.c === --- clang/test/Driver/fsanitize.c +++ clang/test/Driver/fsanitize.c @@ -460,9 +460,21 @@ // RUN: %clang --target=arm64-apple-macos -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-MACOS // CHECK-TSAN-ARM64-MACOS-NOT: unsupported option +// RUN: %clang --target=arm64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-IOSSIMULATOR +// CHECK-TSAN-ARM64-IOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-WATCHOSSIMULATOR +// CHECK-TSAN-ARM64-WATCHOSSIMULATOR-NOT: unsupported option + +// RUN: %clang --target=arm64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-ARM64-TVOSSIMULATOR +// CHECK-TSAN-ARM64-TVOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-ios-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-IOSSIMULATOR // CHECK-TSAN-X86-64-IOSSIMULATOR-NOT: unsupported option +// RUN: %clang --target=x86_64-apple-watchos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-WATCHOSSIMULATOR +// CHECK-TSAN-X86-64-WATCHOSSIMULATOR-NOT: unsupported option + // RUN: %clang --target=x86_64-apple-tvos-simulator -fsanitize=thread %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-TSAN-X86-64-TVOSSIMULATOR // CHECK-TSAN-X86-64-TVOSSIMULATOR-NOT: unsupported option Index: clang/lib/Driver/ToolChains/Darwin.cpp === --- clang/lib/Driver/ToolChains/Darwin.cpp +++ clang/lib/Driver/ToolChains/Darwin.cpp @@ -3277,11 +3277,10 @@ !(isTargetIPhoneOS() && isIPhoneOSVersionLT(5, 0))) Res |= SanitizerKind::Vptr; - if ((IsX86_64 || IsAArch64) && isTargetMacOSBased()) { + if ((IsX86_64 || IsAArch64) && + (isTargetMacOSBased() || isTargetIOSSimulator() || + isTargetTvOSSimulator() || isTargetWatchOSSimulator())) { Res |= SanitizerKind::Thread; - } else if (isTargetIOSSimulator() || isTargetTvOSSimulator()) { -if (IsX86_64) - Res |= San