[PATCH] D46452: [sanitizer] Don't add --export-dynamic for Myriad

2018-05-15 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: clang/lib/Driver/ToolChains/CommonArgs.cpp:706
   // to be dynamic to be sure we export sanitizer interface functions.
-  if (AddExportDynamic)
+  if (AddExportDynamic && TC.getTriple().getVendor() != llvm::Triple::Myriad)
 CmdArgs.push_back("--export-dynamic");

Maybe this logic should be in addSanitizerDynamicList, similar to how it is 
handled for Solaris?


Repository:
  rL LLVM

https://reviews.llvm.org/D46452



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D37804: [OpenCL] Handle address space conversion while setting type alignment

2017-09-27 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

vectorLoadStore.cl is failing on our bots: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/8187, 
please check it out


Repository:
  rL LLVM

https://reviews.llvm.org/D37804



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D38277: [compiler-rt}[CMake] Fix configuration on PowerPC with sanitizers

2017-09-27 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

I wonder what's the error message?




Comment at: cmake/base-config-ix.cmake:153
+  # will fail with this option when building with a sanitizer.
+  set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
+  string(REPLACE "-nodefaultlibs" "" CMAKE_REQUIRED_FLAGS 
${OLD_CMAKE_REQUIRED_FLAGS})

cmake_push_check_state()



Comment at: cmake/base-config-ix.cmake:157
+  # Undo the change.
+  set(CMAKE_REQUIRED_FLAGS "${OLD_CMAKE_REQUIRED_FLAGS}")
+

cmake_pop_check_state()


https://reviews.llvm.org/D38277



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D38277: [compiler-rt][CMake] Fix configuration on PowerPC with sanitizers

2017-09-29 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

http://lab.llvm.org:8011/builders/sanitizer-ppc64be-linux/builds/4004 is broken 
by this change


Repository:
  rL LLVM

https://reviews.llvm.org/D38277



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D38277: [compiler-rt][CMake] Fix configuration on PowerPC with sanitizers

2017-09-29 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: compiler-rt/trunk/cmake/base-config-ix.cmake:154
+  cmake_push_check_state()
+  string(REPLACE "-nodefaultlibs" "" CMAKE_REQUIRED_FLAGS 
${OLD_CMAKE_REQUIRED_FLAGS})
   TEST_BIG_ENDIAN(HOST_IS_BIG_ENDIAN)

Oh, right, it should be:

string(REPLACE "-nodefaultlibs" "" CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})


Repository:
  rL LLVM

https://reviews.llvm.org/D38277



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40903: [Sanitizers] Basic Solaris sanitizer support (PR 33274)

2018-02-05 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rC324296: [Sanitizers] Basic Solaris sanitizer support (PR 
33274) (authored by alekseyshl, committed by ).

Repository:
  rC Clang

https://reviews.llvm.org/D40903

Files:
  include/clang/Driver/ToolChain.h
  lib/Driver/ToolChain.cpp
  lib/Driver/ToolChains/CommonArgs.cpp
  lib/Driver/ToolChains/Solaris.cpp
  lib/Driver/ToolChains/Solaris.h

Index: lib/Driver/ToolChains/Solaris.h
===
--- lib/Driver/ToolChains/Solaris.h
+++ lib/Driver/ToolChains/Solaris.h
@@ -65,6 +65,7 @@
   addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const override;
 
+  SanitizerMask getSupportedSanitizers() const override;
   unsigned GetDefaultDwarfVersion() const override { return 2; }
 
 protected:
Index: lib/Driver/ToolChains/Solaris.cpp
===
--- lib/Driver/ToolChains/Solaris.cpp
+++ lib/Driver/ToolChains/Solaris.cpp
@@ -92,24 +92,48 @@
 Args.MakeArgString(getToolChain().GetFilePath("crtbegin.o")));
   }
 
+  // Provide __start___sancov_guards.  Solaris ld doesn't automatically create
+  // __start_SECNAME labels.
+  CmdArgs.push_back("--whole-archive");
+  CmdArgs.push_back(
+  getToolChain().getCompilerRTArgString(Args, "sancov_begin", false));
+  CmdArgs.push_back("--no-whole-archive");
+
   getToolChain().AddFilePathLibArgs(Args, CmdArgs);
 
   Args.AddAllArgs(CmdArgs, {options::OPT_L, options::OPT_T_Group,
 options::OPT_e, options::OPT_r});
 
+  bool NeedsSanitizerDeps = addSanitizerRuntimes(getToolChain(), Args, CmdArgs);
   AddLinkerInputs(getToolChain(), Inputs, Args, CmdArgs, JA);
 
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
 if (getToolChain().ShouldLinkCXXStdlib(Args))
   getToolChain().AddCXXStdlibLibArgs(Args, CmdArgs);
+if (Args.hasArg(options::OPT_fstack_protector) ||
+Args.hasArg(options::OPT_fstack_protector_strong) ||
+Args.hasArg(options::OPT_fstack_protector_all)) {
+  // Explicitly link ssp libraries, not folded into Solaris libc.
+  CmdArgs.push_back("-lssp_nonshared");
+  CmdArgs.push_back("-lssp");
+}
 CmdArgs.push_back("-lgcc_s");
 CmdArgs.push_back("-lc");
 if (!Args.hasArg(options::OPT_shared)) {
   CmdArgs.push_back("-lgcc");
   CmdArgs.push_back("-lm");
 }
+if (NeedsSanitizerDeps)
+  linkSanitizerRuntimeDeps(getToolChain(), CmdArgs);
   }
 
+  // Provide __stop___sancov_guards.  Solaris ld doesn't automatically create
+  // __stop_SECNAME labels.
+  CmdArgs.push_back("--whole-archive");
+  CmdArgs.push_back(
+  getToolChain().getCompilerRTArgString(Args, "sancov_end", false));
+  CmdArgs.push_back("--no-whole-archive");
+
   if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles)) {
 CmdArgs.push_back(
 Args.MakeArgString(getToolChain().GetFilePath("crtend.o")));
@@ -165,6 +189,17 @@
   addPathIfExists(D, D.SysRoot + "/usr/lib" + LibSuffix, Paths);
 }
 
+SanitizerMask Solaris::getSupportedSanitizers() const {
+  const bool IsX86 = getTriple().getArch() == llvm::Triple::x86;
+  SanitizerMask Res = ToolChain::getSupportedSanitizers();
+  // FIXME: Omit X86_64 until 64-bit support is figured out.
+  if (IsX86) {
+Res |= SanitizerKind::Address;
+  }
+  Res |= SanitizerKind::Vptr;
+  return Res;
+}
+
 Tool *Solaris::buildAssembler() const {
   return new tools::solaris::Assembler(*this);
 }
Index: lib/Driver/ToolChains/CommonArgs.cpp
===
--- lib/Driver/ToolChains/CommonArgs.cpp
+++ lib/Driver/ToolChains/CommonArgs.cpp
@@ -508,9 +508,9 @@
 bool IsShared, bool IsWhole) {
   // Wrap any static runtimes that must be forced into executable in
   // whole-archive.
-  if (IsWhole) CmdArgs.push_back("-whole-archive");
+  if (IsWhole) CmdArgs.push_back("--whole-archive");
   CmdArgs.push_back(TC.getCompilerRTArgString(Args, Sanitizer, IsShared));
-  if (IsWhole) CmdArgs.push_back("-no-whole-archive");
+  if (IsWhole) CmdArgs.push_back("--no-whole-archive");
 
   if (IsShared) {
 addArchSpecificRPath(TC, Args, CmdArgs);
@@ -522,6 +522,10 @@
 static bool addSanitizerDynamicList(const ToolChain &TC, const ArgList &Args,
 ArgStringList &CmdArgs,
 StringRef Sanitizer) {
+  // Solaris ld defaults to --export-dynamic behaviour but doesn't support
+  // the option, so don't try to pass it.
+  if (TC.getTriple().getOS() == llvm::Triple::Solaris)
+return true;
   SmallString<128> SanRT(TC.getCompilerRT(Args, Sanitizer));
   if (llvm::sys::fs::exists(SanRT + ".syms")) {
 CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + SanRT + ".syms"));
@@ -692,7 +696,7 @@
   // If there is

[PATCH] D40903: [Sanitizers] Basic Solaris sanitizer support (PR 33274)

2018-02-05 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Rainer, check https://reviews.llvm.org/rC324302 out, you probably want to add 
test cases for Solaris to test/Driver/sanitizer-ld.c too.


Repository:
  rC Clang

https://reviews.llvm.org/D40903



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D31584: [coroutines] Add support for allocation elision

2017-05-23 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

This bot reports leaks in coro-alloc.cpp: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/1401/steps/check-clang%20asan/logs/stdio.
 Please fix.


Repository:
  rL LLVM

https://reviews.llvm.org/D31584



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D31608: [coroutines] Add emission of initial and final suspends

2017-05-23 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Leaks and warnings are reported in coro-await.cpp: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/1400/steps/check-clang%20asan/logs/stdio.
 Please fix.


https://reviews.llvm.org/D31608



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40903: [Sanitizers] Basic Solaris sanitizer support (PR 33274)

2017-12-18 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl accepted this revision.
alekseyshl added inline comments.
This revision is now accepted and ready to land.



Comment at: lib/Driver/ToolChains/CommonArgs.cpp:528
 StringRef Sanitizer) {
+  // Solaris ld doesn't need this.  Inhibit use of non-existant
+  // --export-dynamic.

ro wrote:
> alekseyshl wrote:
> > Can you elaborate why Solaris ld does not need dynamic lists? How does it 
> > export sanitizer symbols then?
> Solaris ld simply defaults to --export-dynamic.
Can we say then that ld "defaults to --export-dynamic behavior" (as 
--export-dynamic does not exists there) instead of "doesn't need this"?


Repository:
  rC Clang

https://reviews.llvm.org/D40903



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D47600: [UBSan] DO NOT COMMIT: precise UBSan checks experiment

2018-05-31 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl created this revision.

clang part of the two part patch (LLVM + clang)

LLVM part: https://reviews.llvm.org/D47599

Refer to https://reviews.llvm.org/D47599 for the detailed description.


Repository:
  rC Clang

https://reviews.llvm.org/D47600

Files:
  include/clang/Driver/Options.td
  include/clang/Frontend/CodeGenOptions.def
  lib/CodeGen/CGExpr.cpp
  lib/Driver/ToolChains/Clang.cpp
  lib/Frontend/CompilerInvocation.cpp

Index: lib/Frontend/CompilerInvocation.cpp
===
--- lib/Frontend/CompilerInvocation.cpp
+++ lib/Frontend/CompilerInvocation.cpp
@@ -1118,6 +1118,10 @@
 
   Opts.EmitVersionIdentMetadata = Args.hasFlag(OPT_Qy, OPT_Qn, true);
 
+  Opts.ExperimentalUseCondTrap = Args.hasFlag(
+  OPT_fexperimental_use_cond_trap, OPT_fno_experimental_use_cond_trap,
+  /* Default */ false);
+
   return Success;
 }
 
Index: lib/Driver/ToolChains/Clang.cpp
===
--- lib/Driver/ToolChains/Clang.cpp
+++ lib/Driver/ToolChains/Clang.cpp
@@ -4799,6 +4799,9 @@
   CmdArgs.push_back("-fforce-enable-int128");
   }
 
+  Args.AddLastArg(CmdArgs, options::OPT_fexperimental_use_cond_trap,
+  options::OPT_fno_experimental_use_cond_trap);
+
   // Finally add the compile command to the compilation.
   if (Args.hasArg(options::OPT__SLASH_fallback) &&
   Output.getType() == types::TY_Object &&
Index: lib/CodeGen/CGExpr.cpp
===
--- lib/CodeGen/CGExpr.cpp
+++ lib/CodeGen/CGExpr.cpp
@@ -3131,18 +3131,25 @@
 void CodeGenFunction::EmitTrapCheck(llvm::Value *Checked) {
   llvm::BasicBlock *Cont = createBasicBlock("cont");
 
-  // If we're optimizing, collapse all calls to trap down to just one per
-  // function to save on code size.
-  if (!CGM.getCodeGenOpts().OptimizationLevel || !TrapBB) {
-TrapBB = createBasicBlock("trap");
+  if (CGM.getCodeGenOpts().ExperimentalUseCondTrap) {
+TrapBB = createBasicBlock("condtrap");
 Builder.CreateCondBr(Checked, Cont, TrapBB);
 EmitBlock(TrapBB);
-llvm::CallInst *TrapCall = EmitTrapCall(llvm::Intrinsic::trap);
-TrapCall->setDoesNotReturn();
-TrapCall->setDoesNotThrow();
-Builder.CreateUnreachable();
+Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::condtrap));
   } else {
-Builder.CreateCondBr(Checked, Cont, TrapBB);
+// If we're optimizing, collapse all calls to trap down to just one per
+// function to save on code size.
+if (!CGM.getCodeGenOpts().OptimizationLevel || !TrapBB) {
+  TrapBB = createBasicBlock("trap");
+  Builder.CreateCondBr(Checked, Cont, TrapBB);
+  EmitBlock(TrapBB);
+  llvm::CallInst *TrapCall = EmitTrapCall(llvm::Intrinsic::trap);
+  TrapCall->setDoesNotReturn();
+  TrapCall->setDoesNotThrow();
+  Builder.CreateUnreachable();
+} else {
+  Builder.CreateCondBr(Checked, Cont, TrapBB);
+}
   }
 
   EmitBlock(Cont);
Index: include/clang/Frontend/CodeGenOptions.def
===
--- include/clang/Frontend/CodeGenOptions.def
+++ include/clang/Frontend/CodeGenOptions.def
@@ -332,6 +332,8 @@
 /// Whether to embed source in DWARF debug line section.
 CODEGENOPT(EmbedSource, 1, 0)
 
+CODEGENOPT(ExperimentalUseCondTrap, 1, 0)
+
 #undef CODEGENOPT
 #undef ENUM_CODEGENOPT
 #undef VALUE_CODEGENOPT
Index: include/clang/Driver/Options.td
===
--- include/clang/Driver/Options.td
+++ include/clang/Driver/Options.td
@@ -1102,6 +1102,10 @@
   Alias, AliasArgs<["full"]>,
   HelpText<"Enable cf-protection in 'full' mode">;
 
+def fexperimental_use_cond_trap : Flag<["-"], "fexperimental-use-cond-trap">,
+  Group, Flags<[CC1Option]>,
+  HelpText<"Enables an experimental conditional trap in LLVM.">;
+
 def fxray_instrument : Flag<["-"], "fxray-instrument">, Group,
   Flags<[CC1Option]>,
   HelpText<"Generate XRay instrumentation sleds on function entry and exit">;
@@ -1437,6 +1441,10 @@
 def : Flag<["-"], "fno-aligned-new">, Alias;
 def faligned_new_EQ : Joined<["-"], "faligned-new=">;
 
+def fno_experimental_use_cond_trap : Flag<["-"], "fno-experimental-use-cond-trap">,
+  Group, Flags<[CC1Option]>,
+  HelpText<"Disables an experimental conditional trap in LLVM.">;
+
 def fobjc_legacy_dispatch : Flag<["-"], "fobjc-legacy-dispatch">, Group;
 def fobjc_new_property : Flag<["-"], "fobjc-new-property">, Group;
 def fobjc_infer_related_result_type : Flag<["-"], "fobjc-infer-related-result-type">,
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D47600: [UBSan] DO NOT COMMIT: precise UBSan checks experiment

2018-06-05 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl abandoned this revision.
alekseyshl added a comment.

Experimental.


Repository:
  rC Clang

https://reviews.llvm.org/D47600



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45996: [HWASan] Update HWASan assembly snippet in the docs

2018-04-23 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl created this revision.
alekseyshl added a reviewer: eugenis.

To complement https://reviews.llvm.org/D45840


Repository:
  rC Clang

https://reviews.llvm.org/D45996

Files:
  docs/HardwareAssistedAddressSanitizerDesign.rst


Index: docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- docs/HardwareAssistedAddressSanitizerDesign.rst
+++ docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:  08 dc 44 d3 ubfxx8, x0, #4, #52  // shadow address
-   4:  08 01 40 39 ldrbw8, [x8] // load shadow
-   8:  09 fc 78 d3 lsr x9, x0, #56  // address tag
-   c:  3f 01 08 6b cmp w9, w8   // compare tags
-  10:  61 00 00 54 b.ne#12  // jump on mismatch
-  14:  00 00 40 b9 ldr w0, [x0] // original load
-  18:  c0 03 5f d6 ret
-  1c:  40 20 21 d4 brk #0x902   // trap
-
+   0:  08 00 00 90 adrpx8, 0 <__hwasan_shadow>
+   4:  08 01 40 f9 ldr x8, [x8] // shadow base (to be 
resolved by the loader)
+   8:  09 dc 44 d3 ubfxx9, x0, #4, #52  // shadow offset
+   c:  28 69 68 38 ldrbw8, [x9, x8] // load shadow tag
+  10:  09 fc 78 d3 lsr x9, x0, #56  // extract address tag
+  14:  3f 01 08 6b cmp w9, w8   // compare tags
+  18:  61 00 00 54 b.ne24   // jump on mismatch
+  1c:  00 00 40 b9 ldr w0, [x0] // original load
+  20:  c0 03 5f d6 ret
+  24:  40 20 21 d4 brk #0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 


Index: docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- docs/HardwareAssistedAddressSanitizerDesign.rst
+++ docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:	08 dc 44 d3 	ubfx	x8, x0, #4, #52  // shadow address
-   4:	08 01 40 39 	ldrb	w8, [x8] // load shadow
-   8:	09 fc 78 d3 	lsr	x9, x0, #56  // address tag
-   c:	3f 01 08 6b 	cmp	w9, w8   // compare tags
-  10:	61 00 00 54 	b.ne	#12  // jump on mismatch
-  14:	00 00 40 b9 	ldr	w0, [x0] // original load
-  18:	c0 03 5f d6 	ret
-  1c:	40 20 21 d4 	brk	#0x902   // trap
-
+   0:	08 00 00 90 	adrp	x8, 0 <__hwasan_shadow>
+   4:	08 01 40 f9 	ldr	x8, [x8] // shadow base (to be resolved by the loader)
+   8:	09 dc 44 d3 	ubfx	x9, x0, #4, #52  // shadow offset
+   c:	28 69 68 38 	ldrb	w8, [x9, x8] // load shadow tag
+  10:	09 fc 78 d3 	lsr	x9, x0, #56  // extract address tag
+  14:	3f 01 08 6b 	cmp	w9, w8   // compare tags
+  18:	61 00 00 54 	b.ne	24   // jump on mismatch
+  1c:	00 00 40 b9 	ldr	w0, [x0] // original load
+  20:	c0 03 5f d6 	ret
+  24:	40 20 21 d4 	brk	#0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45996: [HWASan] Update HWASan assembly snippet in the docs

2018-04-24 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL330745: [HWASan] Update HWASan assembly snippet in the docs 
(authored by alekseyshl, committed by ).
Herald added a subscriber: llvm-commits.

Repository:
  rL LLVM

https://reviews.llvm.org/D45996

Files:
  cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst


Index: cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
+++ cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:  08 dc 44 d3 ubfxx8, x0, #4, #52  // shadow address
-   4:  08 01 40 39 ldrbw8, [x8] // load shadow
-   8:  09 fc 78 d3 lsr x9, x0, #56  // address tag
-   c:  3f 01 08 6b cmp w9, w8   // compare tags
-  10:  61 00 00 54 b.ne#12  // jump on mismatch
-  14:  00 00 40 b9 ldr w0, [x0] // original load
-  18:  c0 03 5f d6 ret
-  1c:  40 20 21 d4 brk #0x902   // trap
-
+   0:  08 00 00 90 adrpx8, 0 <__hwasan_shadow>
+   4:  08 01 40 f9 ldr x8, [x8] // shadow base (to be 
resolved by the loader)
+   8:  09 dc 44 d3 ubfxx9, x0, #4, #52  // shadow offset
+   c:  28 69 68 38 ldrbw8, [x9, x8] // load shadow tag
+  10:  09 fc 78 d3 lsr x9, x0, #56  // extract address tag
+  14:  3f 01 08 6b cmp w9, w8   // compare tags
+  18:  61 00 00 54 b.ne24   // jump on mismatch
+  1c:  00 00 40 b9 ldr w0, [x0] // original load
+  20:  c0 03 5f d6 ret
+  24:  40 20 21 d4 brk #0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 


Index: cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
+++ cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:	08 dc 44 d3 	ubfx	x8, x0, #4, #52  // shadow address
-   4:	08 01 40 39 	ldrb	w8, [x8] // load shadow
-   8:	09 fc 78 d3 	lsr	x9, x0, #56  // address tag
-   c:	3f 01 08 6b 	cmp	w9, w8   // compare tags
-  10:	61 00 00 54 	b.ne	#12  // jump on mismatch
-  14:	00 00 40 b9 	ldr	w0, [x0] // original load
-  18:	c0 03 5f d6 	ret
-  1c:	40 20 21 d4 	brk	#0x902   // trap
-
+   0:	08 00 00 90 	adrp	x8, 0 <__hwasan_shadow>
+   4:	08 01 40 f9 	ldr	x8, [x8] // shadow base (to be resolved by the loader)
+   8:	09 dc 44 d3 	ubfx	x9, x0, #4, #52  // shadow offset
+   c:	28 69 68 38 	ldrb	w8, [x9, x8] // load shadow tag
+  10:	09 fc 78 d3 	lsr	x9, x0, #56  // extract address tag
+  14:	3f 01 08 6b 	cmp	w9, w8   // compare tags
+  18:	61 00 00 54 	b.ne	24   // jump on mismatch
+  1c:	00 00 40 b9 	ldr	w0, [x0] // original load
+  20:	c0 03 5f d6 	ret
+  24:	40 20 21 d4 	brk	#0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45996: [HWASan] Update HWASan assembly snippet in the docs

2018-04-24 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rC330745: [HWASan] Update HWASan assembly snippet in the docs 
(authored by alekseyshl, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D45996?vs=143671&id=143782#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D45996

Files:
  docs/HardwareAssistedAddressSanitizerDesign.rst


Index: docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- docs/HardwareAssistedAddressSanitizerDesign.rst
+++ docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:  08 dc 44 d3 ubfxx8, x0, #4, #52  // shadow address
-   4:  08 01 40 39 ldrbw8, [x8] // load shadow
-   8:  09 fc 78 d3 lsr x9, x0, #56  // address tag
-   c:  3f 01 08 6b cmp w9, w8   // compare tags
-  10:  61 00 00 54 b.ne#12  // jump on mismatch
-  14:  00 00 40 b9 ldr w0, [x0] // original load
-  18:  c0 03 5f d6 ret
-  1c:  40 20 21 d4 brk #0x902   // trap
-
+   0:  08 00 00 90 adrpx8, 0 <__hwasan_shadow>
+   4:  08 01 40 f9 ldr x8, [x8] // shadow base (to be 
resolved by the loader)
+   8:  09 dc 44 d3 ubfxx9, x0, #4, #52  // shadow offset
+   c:  28 69 68 38 ldrbw8, [x9, x8] // load shadow tag
+  10:  09 fc 78 d3 lsr x9, x0, #56  // extract address tag
+  14:  3f 01 08 6b cmp w9, w8   // compare tags
+  18:  61 00 00 54 b.ne24   // jump on mismatch
+  1c:  00 00 40 b9 ldr w0, [x0] // original load
+  20:  c0 03 5f d6 ret
+  24:  40 20 21 d4 brk #0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 


Index: docs/HardwareAssistedAddressSanitizerDesign.rst
===
--- docs/HardwareAssistedAddressSanitizerDesign.rst
+++ docs/HardwareAssistedAddressSanitizerDesign.rst
@@ -52,15 +52,16 @@
   // int foo(int *a) { return *a; }
   // clang -O2 --target=aarch64-linux -fsanitize=hwaddress -c load.c
   foo:
-   0:	08 dc 44 d3 	ubfx	x8, x0, #4, #52  // shadow address
-   4:	08 01 40 39 	ldrb	w8, [x8] // load shadow
-   8:	09 fc 78 d3 	lsr	x9, x0, #56  // address tag
-   c:	3f 01 08 6b 	cmp	w9, w8   // compare tags
-  10:	61 00 00 54 	b.ne	#12  // jump on mismatch
-  14:	00 00 40 b9 	ldr	w0, [x0] // original load
-  18:	c0 03 5f d6 	ret
-  1c:	40 20 21 d4 	brk	#0x902   // trap
-
+   0:	08 00 00 90 	adrp	x8, 0 <__hwasan_shadow>
+   4:	08 01 40 f9 	ldr	x8, [x8] // shadow base (to be resolved by the loader)
+   8:	09 dc 44 d3 	ubfx	x9, x0, #4, #52  // shadow offset
+   c:	28 69 68 38 	ldrb	w8, [x9, x8] // load shadow tag
+  10:	09 fc 78 d3 	lsr	x9, x0, #56  // extract address tag
+  14:	3f 01 08 6b 	cmp	w9, w8   // compare tags
+  18:	61 00 00 54 	b.ne	24   // jump on mismatch
+  1c:	00 00 40 b9 	ldr	w0, [x0] // original load
+  20:	c0 03 5f d6 	ret
+  24:	40 20 21 d4 	brk	#0x902   // trap
 
 Alternatively, memory accesses are prefixed with a function call.
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40936: Hardware-assisted AddressSanitizer (clang part).

2017-12-07 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl accepted this revision.
alekseyshl added inline comments.



Comment at: clang/include/clang/Basic/Sanitizers.def:47
 
+SANITIZER("hwaddress", HWAddress)
+

Why didn't we follow KASan style and name it "hw-address"?



Comment at: clang/lib/Driver/SanitizerArgs.cpp:383
+  std::make_pair(Efficiency, Address | HWAddress | Leak | Thread | Memory |
+ KernelAddress),
+  std::make_pair(Scudo, Address | HWAddress | Leak | Thread | Memory |

Nit: 4 less spaces here and for the next pair.


https://reviews.llvm.org/D40936



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40903: [Sanitizers] Basic Solaris sanitizer support (PR 33274)

2017-12-12 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: lib/Driver/ToolChains/CommonArgs.cpp:684
   if (AddExportDynamic)
-CmdArgs.push_back("-export-dynamic");
+CmdArgs.push_back("--export-dynamic");
 

If it does not exist on Solaris, why change it then? For the consistency sake?


Repository:
  rC Clang

https://reviews.llvm.org/D40903



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D40903: [Sanitizers] Basic Solaris sanitizer support (PR 33274)

2017-12-13 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: lib/Driver/ToolChains/CommonArgs.cpp:528
 StringRef Sanitizer) {
+  // Solaris ld doesn't need this.  Inhibit use of non-existant
+  // --export-dynamic.

Can you elaborate why Solaris ld does not need dynamic lists? How does it 
export sanitizer symbols then?


Repository:
  rC Clang

https://reviews.llvm.org/D40903



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D34784: [OpenMP] Add flag for specifying the target device architecture for OpenMP device offloading

2017-08-07 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7010 is 
unhappy about this change, please fix.


https://reviews.llvm.org/D34784



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29654: [OpenMP] Integrate OpenMP target region cubin into host binary

2017-08-08 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Driver/openmp-offload.c still fails on 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7038, 
please fix.


https://reviews.llvm.org/D29654



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-09 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Even after r310505, openmp-offload.c continues to haunt our bots, for example 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/2012. 
Can you please fix this test?


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-09 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

r310519 did not fix the problem, see 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7062. I 
would suggest to revert and fix it properly, our bots are broken for a few days 
already.


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-10 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

While I do get the time pressure and such, doing it at the expense of others is 
not cool. Many teams work process is broken for days, folks are busy looking 
into it, investigating and reverting, other breakages are masked by these 
failures etc.

If your test depend on local configuration, you need to be extra careful 
pushing this fragile test. We are lucky, we have bots running continuously, but 
what about others who runs their tests less regularly? What about those who 
pulled LLVM code, built it and trying to run tests before contributing a patch? 
What's your plan to debug those configurations?


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-10 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Even after all the reverts in r310580, our tests are still failing 
(http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7080). 
not surprising, but very disrupting. Please have a plan to fix it soon, 
otherwise I'll have to revert it even further.


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-10 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#838150, @gtbercea wrote:

> First of all, I apologize if I've upset you with my previous post. I am 
> actively working on understanding what is causing these issues. It is not my 
> intention to write tests that work on local configurations only. I am upset 
> to see that these tests keep failing for your and maybe other configurations. 
> Without knowing the actual reason of the failures I can only speculate what 
> is going wrong with them hence the flurry of changes.


Thank you, apology accepted. That was exactly my point, not to start a fight, 
but to emphasize that depending on local configuration is never going to work, 
you will never be able to see and test all of them. Please disable the test 
ASAP and until the better way to handle it is determined.


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-10 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#838219, @gtbercea wrote:

> In https://reviews.llvm.org/D29660#838194, @arphaman wrote:
>
> > The failures were very widespread, e.g. there's a linux buildbot that was 
> > red until the revert: http://bb.pgr.jp/builders/test-clang-i686-linux-RA. 
> > If you have access to a linux machine you should be able to reproduce the 
> > failures that the bot experienced by using the same cmake arguments (I 
> > don't know the exact ones, but judging from the bot you should be able to 
> > reproduce them using 32 bit release build with assertions enabled). I don't 
> > know what GPU that buildbot has.
>
>
> Thanks Alex, I will try to reproduce it locally.
>
> > I'll try to get the detailed test output for my local machine today as well.
>
> Oh that would be great! Thanks a lot! :)




In https://reviews.llvm.org/D29660#838262, @gtbercea wrote:

> In https://reviews.llvm.org/D29660#838185, @alekseyshl wrote:
>
> > In https://reviews.llvm.org/D29660#838150, @gtbercea wrote:
> >
> > > First of all, I apologize if I've upset you with my previous post. I am 
> > > actively working on understanding what is causing these issues. It is not 
> > > my intention to write tests that work on local configurations only. I am 
> > > upset to see that these tests keep failing for your and maybe other 
> > > configurations. Without knowing the actual reason of the failures I can 
> > > only speculate what is going wrong with them hence the flurry of changes.
> >
> >
> > Thank you, apology accepted. That was exactly my point, not to start a 
> > fight, but to emphasize that depending on local configuration is never 
> > going to work, you will never be able to see and test all of them. Please 
> > disable the test ASAP and until the better way to handle it is determined.
>
>
> I have disabled all the offloading tests apart from the ones that pertain to 
> the patch previous to the one introducing Cubin integration into host bin.
>  Please let me know if you see any more failures on your side. If you do feel 
> free to revert all the patches up to and including: 
> https://reviews.llvm.org/D29654
>
> 310625


Our bots still fai after this changel: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7085


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-10 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#838305, @alekseyshl wrote:

> In https://reviews.llvm.org/D29660#838219, @gtbercea wrote:
>
> > In https://reviews.llvm.org/D29660#838194, @arphaman wrote:
> >
> > > The failures were very widespread, e.g. there's a linux buildbot that was 
> > > red until the revert: http://bb.pgr.jp/builders/test-clang-i686-linux-RA. 
> > > If you have access to a linux machine you should be able to reproduce the 
> > > failures that the bot experienced by using the same cmake arguments (I 
> > > don't know the exact ones, but judging from the bot you should be able to 
> > > reproduce them using 32 bit release build with assertions enabled). I 
> > > don't know what GPU that buildbot has.
> >
> >
> > Thanks Alex, I will try to reproduce it locally.
> >
> > > I'll try to get the detailed test output for my local machine today as 
> > > well.
> >
> > Oh that would be great! Thanks a lot! :)
>
>
>
>
> In https://reviews.llvm.org/D29660#838262, @gtbercea wrote:
>
> > In https://reviews.llvm.org/D29660#838185, @alekseyshl wrote:
> >
> > > In https://reviews.llvm.org/D29660#838150, @gtbercea wrote:
> > >
> > > > First of all, I apologize if I've upset you with my previous post. I am 
> > > > actively working on understanding what is causing these issues. It is 
> > > > not my intention to write tests that work on local configurations only. 
> > > > I am upset to see that these tests keep failing for your and maybe 
> > > > other configurations. Without knowing the actual reason of the failures 
> > > > I can only speculate what is going wrong with them hence the flurry of 
> > > > changes.
> > >
> > >
> > > Thank you, apology accepted. That was exactly my point, not to start a 
> > > fight, but to emphasize that depending on local configuration is never 
> > > going to work, you will never be able to see and test all of them. Please 
> > > disable the test ASAP and until the better way to handle it is determined.
> >
> >
> > I have disabled all the offloading tests apart from the ones that pertain 
> > to the patch previous to the one introducing Cubin integration into host 
> > bin.
> >  Please let me know if you see any more failures on your side. If you do 
> > feel free to revert all the patches up to and including: 
> > https://reviews.llvm.org/D29654
> >
> > 310625
>
>
> Our bots still fai after this changel: 
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7085


r310640 disables this test on Linux


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-11 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#839209, @gtbercea wrote:

> I have re-enabled the previous offloading tests and moved the new GPU 
> offloading tests to a new file which is disabled for linux (for now).
>
> 310718
>
> Alex thanks so much for the logs, they have been very useful to understand 
> what's going on.
>
> Aleksey, I have since tried to install a Clang version with the address 
> sanitizer enabled but without much success. Apart from turning on the 
> sanitizer in the cmake using the -DLLVM_USE_SANITIZER="Address" flag is there 
> any other flag that I need to pass to cmake?
>  I am trying to run this on my macbook x86_64 and OS X 10.11. I am getting 
> the following error when building the compiler:
>
> [2966/4254] Linking CXX shared library lib/libc++abi.1.0.dylib
>  FAILED: lib/libc++abi.1.0.dylib
>  Undefined symbols for architecture x86_64:
>
>   "___asan_after_dynamic_init", referenced from:
>   __GLOBAL__sub_I_cxa_default_handlers.cpp in cxa_default_handlers.cpp.o
>   "___asan_before_dynamic_init", referenced from:
>   __GLOBAL__sub_I_cxa_default_handlers.cpp in cxa_default_handlers.cpp.o
>
> [...]
>  ld: symbol(s) not found for architecture x86_64


Actually, you can run our bot, it is in zorg (http://llvm.org/git/zorg.git), 
zorg/buildbot/builders/sanitizers/buildbot_fast.sh (the one I linked the last 
time).


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-11 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7109 
failed on r310718, please fix.


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-11 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#839550, @alekseyshl wrote:

> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7109 
> failed on r310718, please fix.




In https://reviews.llvm.org/D29660#839647, @gtbercea wrote:

> In https://reviews.llvm.org/D29660#839550, @alekseyshl wrote:
>
> > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7109 
> > failed on r310718, please fix.
>
>
> Couldn't fix/find the actual error so for now, just moving the flag patch 
> tests to openmp-offload-gpu.c which is a disabled test.
>
> 310765


Bad news, the bot is still red: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7114


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29660: [OpenMP] Add flag for overwriting default PTX version for OpenMP targets

2017-08-11 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

In https://reviews.llvm.org/D29660#839728, @alekseyshl wrote:

> In https://reviews.llvm.org/D29660#839550, @alekseyshl wrote:
>
> > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7109 
> > failed on r310718, please fix.
>
>
>
>
> In https://reviews.llvm.org/D29660#839647, @gtbercea wrote:
>
> > In https://reviews.llvm.org/D29660#839550, @alekseyshl wrote:
> >
> > > http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7109 
> > > failed on r310718, please fix.
> >
> >
> > Couldn't fix/find the actual error so for now, just moving the flag patch 
> > tests to openmp-offload-gpu.c which is a disabled test.
> >
> > 310765
>
>
> Bad news, the bot is still red: 
> http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7114


Disabled openmp-offload.c on Linux again: https://reviews.llvm.org/rL310772


Repository:
  rL LLVM

https://reviews.llvm.org/D29660



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-21 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl created this revision.
alekseyshl added a reviewer: eugenis.
Herald added a subscriber: cryptoad.

Porting HWASan to Linux x86-64, the third of the three patches, clang part.


Repository:
  rC Clang

https://reviews.llvm.org/D44745

Files:
  lib/Driver/SanitizerArgs.cpp
  lib/Driver/ToolChains/Linux.cpp
  test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms
  test/Driver/asan.c
  test/Driver/fsanitize-blacklist.c
  test/Driver/fsanitize.c
  test/Driver/sanitizer-ld.c

Index: test/Driver/sanitizer-ld.c
===
--- test/Driver/sanitizer-ld.c
+++ test/Driver/sanitizer-ld.c
@@ -696,54 +696,94 @@
 // CHECK-SCUDO-ANDROID-STATIC: "-lpthread"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s
 //
-// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-HWASAN-LINUX-NOT: "-lc"
-// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "-lpthread"
-// CHECK-HWASAN-LINUX: "-lrt"
-// CHECK-HWASAN-LINUX: "-ldl"
+// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "-lpthread"
+// CHECK-HWASAN-X86-64-LINUX: "-lrt"
+// CHECK-HWASAN-X86-64-LINUX: "-ldl"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \
-// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
+
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
-// RUN: -shared-libsan \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s
 //
-// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc"
-// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list"
+// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc"
+// CHECK-HWASAN-AARCH64-LINUX: libclang_rt.hwasan-aarch64.a"
+// CHECK-HWASAN-AARCH64-LINUX

[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-22 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: test/Driver/asan.c:12
-// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S 
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN
-// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S 
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN
 // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan 
instrumentation.

eugenis wrote:
> Don't replace existing tests!
> Add new ones.
> 
I am not replacing them, I am making it consistent with all other sanitizers, 
which also support many more platforms than just x86_64-linux-gnu or 
*-unknown-linux, but have tests for that one platform only.


Repository:
  rC Clang

https://reviews.llvm.org/D44745



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-22 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl updated this revision to Diff 139469.
alekseyshl added a comment.

- Add tests to verify that HWASan requires "-pie".


Repository:
  rC Clang

https://reviews.llvm.org/D44745

Files:
  lib/Driver/SanitizerArgs.cpp
  lib/Driver/ToolChains/Linux.cpp
  test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms
  test/Driver/asan.c
  test/Driver/fsanitize-blacklist.c
  test/Driver/fsanitize.c
  test/Driver/sanitizer-ld.c

Index: test/Driver/sanitizer-ld.c
===
--- test/Driver/sanitizer-ld.c
+++ test/Driver/sanitizer-ld.c
@@ -696,54 +696,100 @@
 // CHECK-SCUDO-ANDROID-STATIC: "-lpthread"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s
 //
-// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-HWASAN-LINUX-NOT: "-lc"
-// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "-lpthread"
-// CHECK-HWASAN-LINUX: "-lrt"
-// CHECK-HWASAN-LINUX: "-ldl"
+// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "-lpthread"
+// CHECK-HWASAN-X86-64-LINUX: "-lrt"
+// CHECK-HWASAN-X86-64-LINUX: "-ldl"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \
-// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
+
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
-// RUN: -shared-libsan \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s
 //
-// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc"
-// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list"
+// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-AARCH64-LINUX: "-pie"
+// CHECK-HWASAN-AA

[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-22 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added inline comments.



Comment at: test/Driver/asan.c:12
-// RUN: %clang -O2 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S 
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN
-// RUN: %clang -O3 -target aarch64-unknown-linux -fsanitize=hwaddress %s -S 
-emit-llvm -o - | FileCheck %s --check-prefix=CHECK-HWASAN
 // Verify that -fsanitize={address,kernel-address} invoke ASan and KASan 
instrumentation.

eugenis wrote:
> alekseyshl wrote:
> > eugenis wrote:
> > > Don't replace existing tests!
> > > Add new ones.
> > > 
> > I am not replacing them, I am making it consistent with all other 
> > sanitizers, which also support many more platforms than just 
> > x86_64-linux-gnu or *-unknown-linux, but have tests for that one platform 
> > only.
> I don't think this is a good argument for changing existing tests. It does 
> not add any new coverage, and in this particular example it is not even 
> consistent with surrounding RUN lines - those use i386 triple. It simply adds 
> noise to code history.
> 
> If you want to test that hwasan supports x86_64 triple - add a new test case.
> 
Ok, this file, I'm ambivalent about, it is not consistent already, but the 
other ones I do feel quite strongly about, they are become more consistent and 
consistency is good.


Repository:
  rC Clang

https://reviews.llvm.org/D44745



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-22 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl updated this revision to Diff 139513.
alekseyshl added a comment.

- Revert triple change in asan.cc test


Repository:
  rC Clang

https://reviews.llvm.org/D44745

Files:
  lib/Driver/SanitizerArgs.cpp
  lib/Driver/ToolChains/Linux.cpp
  test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms
  test/Driver/fsanitize-blacklist.c
  test/Driver/fsanitize.c
  test/Driver/sanitizer-ld.c

Index: test/Driver/sanitizer-ld.c
===
--- test/Driver/sanitizer-ld.c
+++ test/Driver/sanitizer-ld.c
@@ -696,54 +696,100 @@
 // CHECK-SCUDO-ANDROID-STATIC: "-lpthread"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s
 //
-// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-HWASAN-LINUX-NOT: "-lc"
-// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "-lpthread"
-// CHECK-HWASAN-LINUX: "-lrt"
-// CHECK-HWASAN-LINUX: "-ldl"
+// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "-lpthread"
+// CHECK-HWASAN-X86-64-LINUX: "-lrt"
+// CHECK-HWASAN-X86-64-LINUX: "-ldl"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress -shared-libsan \
-// RUN: -resource-dir=%S/Inputs/resource_dir \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
+
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
 // RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
-// RUN: -shared-libsan \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-AARCH64-LINUX %s
 //
-// CHECK-SHARED-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lc"
-// CHECK-SHARED-HWASAN-LINUX: libclang_rt.hwasan-aarch64.so"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lpthread"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-lrt"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "-ldl"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-SHARED-HWASAN-LINUX-NOT: "--dynamic-list"
+// CHECK-HWASAN-AARCH64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-AARCH64-LINUX: "-pie"
+// CHECK-HWASAN-AARCH64-LINUX-NOT: "-lc"
+// CHECK-

[PATCH] D44745: [HWASan] Port HWASan to Linux x86-64 (clang)

2018-03-23 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rC328361: [HWASan] Port HWASan to Linux x86-64 (clang) 
(authored by alekseyshl, committed by ).

Changed prior to commit:
  https://reviews.llvm.org/D44745?vs=139513&id=139640#toc

Repository:
  rC Clang

https://reviews.llvm.org/D44745

Files:
  lib/Driver/SanitizerArgs.cpp
  lib/Driver/ToolChains/Linux.cpp
  test/Driver/Inputs/resource_dir/lib/linux/libclang_rt.hwasan-x86_64.a.syms
  test/Driver/fsanitize-blacklist.c
  test/Driver/fsanitize.c
  test/Driver/sanitizer-ld.c

Index: lib/Driver/SanitizerArgs.cpp
===
--- lib/Driver/SanitizerArgs.cpp
+++ lib/Driver/SanitizerArgs.cpp
@@ -30,7 +30,7 @@
   NeedsUbsanCxxRt = Vptr | CFI,
   NotAllowedWithTrap = Vptr,
   NotAllowedWithMinimalRuntime = Vptr,
-  RequiresPIE = DataFlow | Scudo,
+  RequiresPIE = DataFlow | HWAddress | Scudo,
   NeedsUnwindTables = Address | HWAddress | Thread | Memory | DataFlow,
   SupportsCoverage = Address | HWAddress | KernelAddress | Memory | Leak |
  Undefined | Integer | Nullability | DataFlow | Fuzzer |
Index: lib/Driver/ToolChains/Linux.cpp
===
--- lib/Driver/ToolChains/Linux.cpp
+++ lib/Driver/ToolChains/Linux.cpp
@@ -879,7 +879,7 @@
 Res |= SanitizerKind::Function;
   if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsMIPS || IsArmArch)
 Res |= SanitizerKind::Scudo;
-  if (IsAArch64)
+  if (IsX86_64 || IsAArch64)
 Res |= SanitizerKind::HWAddress;
   return Res;
 }
Index: test/Driver/sanitizer-ld.c
===
--- test/Driver/sanitizer-ld.c
+++ test/Driver/sanitizer-ld.c
@@ -696,54 +696,100 @@
 // CHECK-SCUDO-ANDROID-STATIC: "-lpthread"
 
 // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
-// RUN: -target aarch64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
 // RUN: -resource-dir=%S/Inputs/resource_dir \
 // RUN: --sysroot=%S/Inputs/basic_linux_tree \
-// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-LINUX %s
+// RUN:   | FileCheck --check-prefix=CHECK-HWASAN-X86-64-LINUX %s
+//
+// CHECK-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.a"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-x86_64.a.syms"
+// CHECK-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-HWASAN-X86-64-LINUX: "-lpthread"
+// CHECK-HWASAN-X86-64-LINUX: "-lrt"
+// CHECK-HWASAN-X86-64-LINUX: "-ldl"
+
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-SHARED-HWASAN-X86-64-LINUX %s
+//
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"
+
+// RUN: %clang -no-canonical-prefixes %s -### -o %t.so -shared 2>&1 \
+// RUN: -target x86_64-unknown-linux -fuse-ld=ld -fsanitize=hwaddress \
+// RUN: -shared-libsan -resource-dir=%S/Inputs/resource_dir \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree \
+// RUN:   | FileCheck --check-prefix=CHECK-DSO-SHARED-HWASAN-X86-64-LINUX %s
 //
-// CHECK-HWASAN-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
-// CHECK-HWASAN-LINUX-NOT: "-lc"
-// CHECK-HWASAN-LINUX: libclang_rt.hwasan-aarch64.a"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "--dynamic-list={{.*}}libclang_rt.hwasan-aarch64.a.syms"
-// CHECK-HWASAN-LINUX-NOT: "--export-dynamic"
-// CHECK-HWASAN-LINUX: "-lpthread"
-// CHECK-HWASAN-LINUX: "-lrt"
-// CHECK-HWASAN-LINUX: "-ldl"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: "{{(.*[^-.0-9A-Z_a-z])?}}ld{{(.exe)?}}"
+// CHECK-DSO_SHARED-HWASAN-X86-64-LINUX: "-pie"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lc"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX: libclang_rt.hwasan-x86_64.so"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lpthread"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-lrt"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "-ldl"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--export-dynamic"
+// CHECK-DSO-SHARED-HWASAN-X86-64-LINUX-NOT: "--dynamic-list"

[PATCH] D39312: [LSan] Enable -fsanitize=leak for PPC64 Linux.

2017-10-25 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl created this revision.

.


https://reviews.llvm.org/D39312

Files:
  lib/Driver/ToolChains/Linux.cpp
  test/Driver/fsanitize.c


Index: test/Driver/fsanitize.c
===
--- test/Driver/fsanitize.c
+++ test/Driver/fsanitize.c
@@ -286,6 +286,9 @@
 // RUN: %clang -target mips-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-MIPS
 // CHECK-SANL-MIPS: unsupported option '-fsanitize=leak' for target 
'mips-unknown-linux'
 
+// RUN: %clang -target powerpc64-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// RUN: %clang -target powerpc64le-unknown-linux -fsanitize=leak %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// CHECK-SANL-PPC64: "-fsanitize=leak"
 // RUN: %clang -target powerpc-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-PPC
 // CHECK-SANL-PPC: unsupported option '-fsanitize=leak' for target 
'powerpc-unknown-linux'
 
Index: lib/Driver/ToolChains/Linux.cpp
===
--- lib/Driver/ToolChains/Linux.cpp
+++ lib/Driver/ToolChains/Linux.cpp
@@ -837,7 +837,7 @@
   Res |= SanitizerKind::SafeStack;
   if (IsX86_64 || IsMIPS64 || IsAArch64)
 Res |= SanitizerKind::DataFlow;
-  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch)
+  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch || IsPowerPC64)
 Res |= SanitizerKind::Leak;
   if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64)
 Res |= SanitizerKind::Thread;


Index: test/Driver/fsanitize.c
===
--- test/Driver/fsanitize.c
+++ test/Driver/fsanitize.c
@@ -286,6 +286,9 @@
 // RUN: %clang -target mips-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-MIPS
 // CHECK-SANL-MIPS: unsupported option '-fsanitize=leak' for target 'mips-unknown-linux'
 
+// RUN: %clang -target powerpc64-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// RUN: %clang -target powerpc64le-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// CHECK-SANL-PPC64: "-fsanitize=leak"
 // RUN: %clang -target powerpc-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC
 // CHECK-SANL-PPC: unsupported option '-fsanitize=leak' for target 'powerpc-unknown-linux'
 
Index: lib/Driver/ToolChains/Linux.cpp
===
--- lib/Driver/ToolChains/Linux.cpp
+++ lib/Driver/ToolChains/Linux.cpp
@@ -837,7 +837,7 @@
   Res |= SanitizerKind::SafeStack;
   if (IsX86_64 || IsMIPS64 || IsAArch64)
 Res |= SanitizerKind::DataFlow;
-  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch)
+  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch || IsPowerPC64)
 Res |= SanitizerKind::Leak;
   if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64)
 Res |= SanitizerKind::Thread;
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D39312: [LSan] Enable -fsanitize=leak for PPC64 Linux.

2017-10-25 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL316636: [LSan] Enable -fsanitize=leak for PPC64 Linux. 
(authored by alekseyshl).

Repository:
  rL LLVM

https://reviews.llvm.org/D39312

Files:
  cfe/trunk/lib/Driver/ToolChains/Linux.cpp
  cfe/trunk/test/Driver/fsanitize.c


Index: cfe/trunk/test/Driver/fsanitize.c
===
--- cfe/trunk/test/Driver/fsanitize.c
+++ cfe/trunk/test/Driver/fsanitize.c
@@ -286,6 +286,9 @@
 // RUN: %clang -target mips-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-MIPS
 // CHECK-SANL-MIPS: unsupported option '-fsanitize=leak' for target 
'mips-unknown-linux'
 
+// RUN: %clang -target powerpc64-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// RUN: %clang -target powerpc64le-unknown-linux -fsanitize=leak %s -### 2>&1 
| FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// CHECK-SANL-PPC64: "-fsanitize=leak"
 // RUN: %clang -target powerpc-unknown-linux -fsanitize=leak %s -### 2>&1 | 
FileCheck %s --check-prefix=CHECK-SANL-PPC
 // CHECK-SANL-PPC: unsupported option '-fsanitize=leak' for target 
'powerpc-unknown-linux'
 
Index: cfe/trunk/lib/Driver/ToolChains/Linux.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Linux.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp
@@ -837,7 +837,7 @@
   Res |= SanitizerKind::SafeStack;
   if (IsX86_64 || IsMIPS64 || IsAArch64)
 Res |= SanitizerKind::DataFlow;
-  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch)
+  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch || IsPowerPC64)
 Res |= SanitizerKind::Leak;
   if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64)
 Res |= SanitizerKind::Thread;


Index: cfe/trunk/test/Driver/fsanitize.c
===
--- cfe/trunk/test/Driver/fsanitize.c
+++ cfe/trunk/test/Driver/fsanitize.c
@@ -286,6 +286,9 @@
 // RUN: %clang -target mips-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-MIPS
 // CHECK-SANL-MIPS: unsupported option '-fsanitize=leak' for target 'mips-unknown-linux'
 
+// RUN: %clang -target powerpc64-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// RUN: %clang -target powerpc64le-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC64
+// CHECK-SANL-PPC64: "-fsanitize=leak"
 // RUN: %clang -target powerpc-unknown-linux -fsanitize=leak %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-SANL-PPC
 // CHECK-SANL-PPC: unsupported option '-fsanitize=leak' for target 'powerpc-unknown-linux'
 
Index: cfe/trunk/lib/Driver/ToolChains/Linux.cpp
===
--- cfe/trunk/lib/Driver/ToolChains/Linux.cpp
+++ cfe/trunk/lib/Driver/ToolChains/Linux.cpp
@@ -837,7 +837,7 @@
   Res |= SanitizerKind::SafeStack;
   if (IsX86_64 || IsMIPS64 || IsAArch64)
 Res |= SanitizerKind::DataFlow;
-  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch)
+  if (IsX86_64 || IsMIPS64 || IsAArch64 || IsX86 || IsArmArch || IsPowerPC64)
 Res |= SanitizerKind::Leak;
   if (IsX86_64 || IsMIPS64 || IsAArch64 || IsPowerPC64)
 Res |= SanitizerKind::Thread;
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D31399: [coroutines] Handle get_return_object_on_allocation_failure

2017-03-27 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

Seems like this bot is not happy about this change: 
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/3771


Repository:
  rL LLVM

https://reviews.llvm.org/D31399



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D29886: [clangd] Wire up ASTUnit and publish diagnostics with it.

2017-02-15 Thread Aleksey Shlyapnikov via Phabricator via cfe-commits
alekseyshl added a comment.

http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/2437 is 
broken by this revision.


Repository:
  rL LLVM

https://reviews.llvm.org/D29886



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits