[PATCH] FileCheck-ize test and make sure more things don't happen.
David Blaikie
dblaikie at gmail.com
Thu Jun 25 17:12:24 PDT 2015
Looks good - alternatively you could phrase this as a single function with
a macro for the nodebug attribute - two clang+FileCheck lines, one passes
-D to enable the nodebug, one passes an empty -D. Might be a more direct
comparison? (& does require two clang invocations, which is a tradeoff)
On Thu, Jun 25, 2015 at 4:11 PM, Paul Robinson <
Paul_Robinson at playstation.sony.com> wrote:
> I had a similar thought, but had foolishly suppressed it. Since you had
> the same thought, it's probably worth paying attention to it.
>
>
> http://reviews.llvm.org/D10747
>
> Files:
> test/CodeGen/attr-nodebug.c
>
> Index: test/CodeGen/attr-nodebug.c
> ===================================================================
> --- test/CodeGen/attr-nodebug.c
> +++ test/CodeGen/attr-nodebug.c
> @@ -1,12 +1,32 @@
> -// RUN: %clang_cc1 -g -emit-llvm -o %t %s
> -// RUN: not grep 'call void @llvm.dbg.func.start' %t
> +// RUN: %clang_cc1 -g -emit-llvm -o - %s | FileCheck %s
>
> void t1() __attribute__((nodebug));
>
> void t1()
> {
> int a = 10;
> -
> a++;
> }
>
> +void t2()
> +{
> + int b = 10;
> + b++;
> +}
> +
> +// With nodebug, IR should have no llvm.dbg.* calls, or !dbg annotations.
> +// CHECK-LABEL: @t1
> +// CHECK-NOT: dbg
> +// CHECK: }
> +
> +// For sanity, check those things do occur normally.
> +// CHECK-LABEL: @t2
> +// CHECK: call{{.*}}llvm.dbg
> +// CHECK: !dbg
> +// CHECK: }
> +
> +// We should see a function description for t2 but not t1.
> +// CHECK-NOT: DISubprogram(name: "t1"
> +// CHECK: DISubprogram(name: "t2"
> +// CHECK-NOT: DISubprogram(name: "t1"
> +
>
> EMAIL PREFERENCES
> http://reviews.llvm.org/settings/panel/emailpreferences/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150625/055d7122/attachment.html>
More information about the cfe-commits
mailing list