Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Dmitry Vyukov
On Mon, Dec 7, 2015 at 4:20 PM, Jakub Jelinek  wrote:
> On Mon, Dec 07, 2015 at 04:16:02PM +0100, Dmitry Vyukov wrote:
>> Index: ChangeLog
>> ===
>> --- ChangeLog (revision 231362)
>> +++ ChangeLog (working copy)
>> @@ -1,3 +1,7 @@
>> +2015-12-06  Dmitry Vyukov  
>> +
>> + * gcc.dg/sancov/asan.c: Don't run when asan is not available.
>
> The ChangeLog entry should also contain the other change:
> * gcc.dg/sancov/sancov.exp: Load asan-dg.exp.
>
> Ok with that change.


Committed as 231364 with updated ChangeLog:

* gcc.dg/sancov/sancov.exp: Load asan-dg.exp.
* gcc.dg/sancov/asan.c: Don't run when asan is not available.

Thanks!


Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Jakub Jelinek
On Mon, Dec 07, 2015 at 04:16:02PM +0100, Dmitry Vyukov wrote:
> Index: ChangeLog
> ===
> --- ChangeLog (revision 231362)
> +++ ChangeLog (working copy)
> @@ -1,3 +1,7 @@
> +2015-12-06  Dmitry Vyukov  
> +
> + * gcc.dg/sancov/asan.c: Don't run when asan is not available.

The ChangeLog entry should also contain the other change:
* gcc.dg/sancov/sancov.exp: Load asan-dg.exp.

Ok with that change.

Jakub


Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Dmitry Vyukov
On Mon, Dec 7, 2015 at 3:09 PM, Jakub Jelinek  wrote:
> On Sun, Dec 06, 2015 at 09:56:32AM +0100, Dmitry Vyukov wrote:
>
>> --- gcc.dg/sancov/sancov.exp (revision 231328)
>> +++ gcc.dg/sancov/sancov.exp (working copy)
>> @@ -18,6 +18,7 @@
>>
>>  load_lib gcc-dg.exp
>>  load_lib torture-options.exp
>> +load_lib asan-dg.exp
>>
>>  dg-init
>>  torture-init
>> @@ -31,7 +32,11 @@
>>   { -O2 -g } \
>>   { -O3 -g } ]
>>
>> -gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
>> +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""
>>
>> +if [check_effective_target_fsanitize_address] {
>> +  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
>> +}
>> +
>
> I don't like this, it is bad enough vect.exp works this way, let's not add
> further tests depending on test names.
> So, either just load_lib asan-dg.exp and change
> /* { dg-do compile } */
> to
> /* { dg-do compile { target fsanitize_address } } */
> or avoid the load_lib and add check_effective_target_fsanitize_address
> variant that checks compilation with -fsanitize=address of trivial program
> instead of linking, put it into lib/target-supports.exp and use it
> in dg-do ompile.


Did the first option. Please take another look:


Index: ChangeLog
===
--- ChangeLog (revision 231362)
+++ ChangeLog (working copy)
@@ -1,3 +1,7 @@
+2015-12-06  Dmitry Vyukov  
+
+ * gcc.dg/sancov/asan.c: Don't run when asan is not available.
+
 2015-12-07  Nathan Sidwell  

  * gcc.target/nvptx/decl-init.c: New.
Index: gcc.dg/sancov/asan.c
===
--- gcc.dg/sancov/asan.c (revision 231362)
+++ gcc.dg/sancov/asan.c (working copy)
@@ -3,7 +3,7 @@
  - coverage does not instrument asan-emitted basic blocks
  - asan considers coverage callback as "nonfreeing" (thus 1 asan store
callback.  */
-/* { dg-do compile } */
+/* { dg-do compile { target fsanitize_address } } */
 /* { dg-options "-fsanitize-coverage=trace-pc -fsanitize=address
-fdump-tree-optimized" } */

 void foo(volatile int *a, int *b)
Index: gcc.dg/sancov/sancov.exp
===
--- gcc.dg/sancov/sancov.exp (revision 231362)
+++ gcc.dg/sancov/sancov.exp (working copy)
@@ -17,6 +17,7 @@
 # .

 load_lib gcc-dg.exp
+load_lib asan-dg.exp
 load_lib torture-options.exp

 dg-init
Index: ChangeLog
===
--- ChangeLog	(revision 231362)
+++ ChangeLog	(working copy)
@@ -1,3 +1,7 @@
+2015-12-06  Dmitry Vyukov  
+
+	* gcc.dg/sancov/asan.c: Don't run when asan is not available.
+
 2015-12-07  Nathan Sidwell  
 
 	* gcc.target/nvptx/decl-init.c: New.
Index: gcc.dg/sancov/asan.c
===
--- gcc.dg/sancov/asan.c	(revision 231362)
+++ gcc.dg/sancov/asan.c	(working copy)
@@ -3,7 +3,7 @@
  - coverage does not instrument asan-emitted basic blocks
  - asan considers coverage callback as "nonfreeing" (thus 1 asan store
callback.  */
-/* { dg-do compile } */
+/* { dg-do compile { target fsanitize_address } } */
 /* { dg-options "-fsanitize-coverage=trace-pc -fsanitize=address -fdump-tree-optimized" } */
 
 void foo(volatile int *a, int *b)
Index: gcc.dg/sancov/sancov.exp
===
--- gcc.dg/sancov/sancov.exp	(revision 231362)
+++ gcc.dg/sancov/sancov.exp	(working copy)
@@ -17,6 +17,7 @@
 # .
 
 load_lib gcc-dg.exp
+load_lib asan-dg.exp
 load_lib torture-options.exp
 
 dg-init


Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Dmitry Vyukov
On Mon, Dec 7, 2015 at 2:56 PM, Nathan Sidwell  wrote:
> On 12/06/15 03:56, Dmitry Vyukov wrote:
>>
>> Hello,
>>
>> Sancov tests submitted in 231296 assume that asan is supported on all
>> platforms.
>> This patch fixes that assumption.
>
>
>>* gcc.target/powerpc/recip-sqrtf.c: New test.
>> Index: gcc.dg/sancov/sancov.exp
>> ===
>
>
>> -gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
>> +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""
>>
>> +if [check_effective_target_fsanitize_address] {
>> +  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
>> +}
>> +
>>   torture-finish
>>   dg-finish
>>
>
> Thanks for addressing this.  FWIW I think canonical form in .exp files is to
> place something like
>
> if { ! [is this for me?] } then {
>  return
> }
>
> as early as possible (before the dg-init call)


Only asan.c is not for me, but other tests still need to be executed.


Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Jakub Jelinek
On Sun, Dec 06, 2015 at 09:56:32AM +0100, Dmitry Vyukov wrote:

> --- gcc.dg/sancov/sancov.exp (revision 231328)
> +++ gcc.dg/sancov/sancov.exp (working copy)
> @@ -18,6 +18,7 @@
> 
>  load_lib gcc-dg.exp
>  load_lib torture-options.exp
> +load_lib asan-dg.exp
> 
>  dg-init
>  torture-init
> @@ -31,7 +32,11 @@
>   { -O2 -g } \
>   { -O3 -g } ]
> 
> -gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
> +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""
> 
> +if [check_effective_target_fsanitize_address] {
> +  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
> +}
> +

I don't like this, it is bad enough vect.exp works this way, let's not add
further tests depending on test names.
So, either just load_lib asan-dg.exp and change
/* { dg-do compile } */
to
/* { dg-do compile { target fsanitize_address } } */
or avoid the load_lib and add check_effective_target_fsanitize_address
variant that checks compilation with -fsanitize=address of trivial program
instead of linking, put it into lib/target-supports.exp and use it
in dg-do ompile.

Jakub


Re: [PATCH] Fix new sancov tests

2015-12-07 Thread Nathan Sidwell

On 12/06/15 03:56, Dmitry Vyukov wrote:

Hello,

Sancov tests submitted in 231296 assume that asan is supported on all platforms.
This patch fixes that assumption.



   * gcc.target/powerpc/recip-sqrtf.c: New test.
Index: gcc.dg/sancov/sancov.exp
===



-gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""

+if [check_effective_target_fsanitize_address] {
+  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
+}
+
  torture-finish
  dg-finish



Thanks for addressing this.  FWIW I think canonical form in .exp files is to 
place something like


if { ! [is this for me?] } then {
 return
}

as early as possible (before the dg-init call)

nathan


[PATCH] Fix new sancov tests

2015-12-06 Thread Dmitry Vyukov
Hello,

Sancov tests submitted in 231296 assume that asan is supported on all platforms.
This patch fixes that assumption.
OK for trunk?



Index: ChangeLog
===
--- ChangeLog (revision 231328)
+++ ChangeLog (working copy)
@@ -1,3 +1,8 @@
+2015-12-06  Dmitry Vyukov  
+
+ * gcc.dg/sancov/sancov.exp: Don't run asan tests when asan is not
+ available.
+
 2015-12-05  David Edelsohn  

  * gcc.target/powerpc/recip-sqrtf.c: New test.
Index: gcc.dg/sancov/sancov.exp
===
--- gcc.dg/sancov/sancov.exp (revision 231328)
+++ gcc.dg/sancov/sancov.exp (working copy)
@@ -18,6 +18,7 @@

 load_lib gcc-dg.exp
 load_lib torture-options.exp
+load_lib asan-dg.exp

 dg-init
 torture-init
@@ -31,7 +32,11 @@
  { -O2 -g } \
  { -O3 -g } ]

-gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""

+if [check_effective_target_fsanitize_address] {
+  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
+}
+
 torture-finish
 dg-finish
Index: ChangeLog
===
--- ChangeLog	(revision 231328)
+++ ChangeLog	(working copy)
@@ -1,3 +1,8 @@
+2015-12-06  Dmitry Vyukov  
+
+	* gcc.dg/sancov/sancov.exp: Don't run asan tests when asan is not
+	available.
+
 2015-12-05  David Edelsohn  
 
 	* gcc.target/powerpc/recip-sqrtf.c: New test.
Index: gcc.dg/sancov/sancov.exp
===
--- gcc.dg/sancov/sancov.exp	(revision 231328)
+++ gcc.dg/sancov/sancov.exp	(working copy)
@@ -18,6 +18,7 @@
 
 load_lib gcc-dg.exp
 load_lib torture-options.exp
+load_lib asan-dg.exp
 
 dg-init
 torture-init
@@ -31,7 +32,11 @@
 	{ -O2 -g } \
 	{ -O3 -g } ]
 
-gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
+gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/basic*.c]] "" ""
 
+if [check_effective_target_fsanitize_address] {
+  gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/asan*.c]] "" ""
+}
+
 torture-finish
 dg-finish