[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