[PATCH] D40668: [Blocks] Inherit sanitizer options from parent decl

Phabricator via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 7 18:48:35 PST 2017


This revision was automatically updated to reflect the committed changes.
Closed by commit rC320132: [Blocks] Inherit sanitizer options from parent decl (authored by vedantk).

Repository:
  rC Clang

https://reviews.llvm.org/D40668

Files:
  lib/CodeGen/CGBlocks.cpp
  test/CodeGenObjC/no-sanitize.m


Index: lib/CodeGen/CGBlocks.cpp
===================================================================
--- lib/CodeGen/CGBlocks.cpp
+++ lib/CodeGen/CGBlocks.cpp
@@ -784,7 +784,9 @@
       8);
   // Using the computed layout, generate the actual block function.
   bool isLambdaConv = blockInfo.getBlockDecl()->isConversionFromLambda();
-  auto *InvokeFn = CodeGenFunction(CGM, true).GenerateBlockFunction(
+  CodeGenFunction BlockCGF{CGM, true};
+  BlockCGF.SanOpts = SanOpts;
+  auto *InvokeFn = BlockCGF.GenerateBlockFunction(
       CurGD, blockInfo, LocalDeclMap, isLambdaConv, blockInfo.CanBeGlobal);
   if (InvokeF)
     *InvokeF = InvokeFn;
Index: test/CodeGenObjC/no-sanitize.m
===================================================================
--- test/CodeGenObjC/no-sanitize.m
+++ test/CodeGenObjC/no-sanitize.m
@@ -1,8 +1,9 @@
-// RUN: %clang_cc1 %s -emit-llvm -fsanitize=address -o - | FileCheck %s
+// RUN: %clang_cc1 %s -emit-llvm -fsanitize=address -fblocks -o - | FileCheck %s
 
 @interface I0 @end
 @implementation I0
 // CHECK-NOT: sanitize_address
 - (void) im0: (int) a0 __attribute__((no_sanitize("address"))) {
+  int (^blockName)() = ^int() { return 0; };
 }
 @end


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D40668.126088.patch
Type: text/x-patch
Size: 1187 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171208/e74c9f62/attachment.bin>


More information about the cfe-commits mailing list