RFC: Disable asan tests under ulimit -v

Message ID CADzB+2=oWE_THszwoo-_WE6xb+bhvYcWde80F-fvQB2h-TM9iw@mail.gmail.com
State New
Headers show
Series
  • RFC: Disable asan tests under ulimit -v
Related show

Commit Message

Jason Merrill March 23, 2018, 6:52 p.m.
asan doesn't work under ulimit -v, which I want to use on shared hosts
to avoid causing trouble with runaway processes.  There doesn't seem
to be a way within expect to access getrlimit/setrlimit, so in this
patch I call out to the shell to test the current limit, and give up
if I get back a number (rather than "unlimited" or an error message).

Thoughts?

Comments

Mike Stump March 23, 2018, 11:55 p.m. | #1
On Mar 23, 2018, at 11:52 AM, Jason Merrill <jason@redhat.com> wrote:
> 

> asan doesn't work under ulimit -v, which I want to use on shared hosts

> to avoid causing trouble with runaway processes.  There doesn't seem

> to be a way within expect to access getrlimit/setrlimit, so in this

> patch I call out to the shell to test the current limit, and give up

> if I get back a number (rather than "unlimited" or an error message).

> 

> Thoughts?


I'd punt to the asan folks.  Seems reasonable if it doesn't work.
Andreas Schwab March 24, 2018, 8:51 a.m. | #2
On Mär 23 2018, Jason Merrill <jason@redhat.com> wrote:

> diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp

> index 4ee8dd98697..a22d2ac5e20 100644

> --- a/gcc/testsuite/g++.dg/asan/asan.exp

> +++ b/gcc/testsuite/g++.dg/asan/asan.exp

> @@ -24,6 +24,13 @@ load_lib asan-dg.exp

>  dg-init

>  asan_init

>  

> +# asan doesn't work if there's a ulimit on virtual memory.

> +if ![is_remote target] {

> +    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {


Does that actually work?  ulimit is a shell builtin, but exec does not
use the shell.  Also, you get an error if the command returns a non-zero
status, or isn't found.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Jason Merrill March 26, 2018, 4:32 p.m. | #3
On Sat, Mar 24, 2018 at 4:51 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> On Mär 23 2018, Jason Merrill <jason@redhat.com> wrote:

>

>> diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp

>> index 4ee8dd98697..a22d2ac5e20 100644

>> --- a/gcc/testsuite/g++.dg/asan/asan.exp

>> +++ b/gcc/testsuite/g++.dg/asan/asan.exp

>> @@ -24,6 +24,13 @@ load_lib asan-dg.exp

>>  dg-init

>>  asan_init

>>

>> +# asan doesn't work if there's a ulimit on virtual memory.

>> +if ![is_remote target] {

>> +    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {

>

> Does that actually work?


It does for me.

> ulimit is a shell builtin, but exec does not use the shell.


It's also a separate executable.

> Also, you get an error if the command returns a non-zero

> status, or isn't found.


In that case, the result of the exec won't be a string of numbers, so
we run the tests.

Jason
Andreas Schwab March 26, 2018, 5:31 p.m. | #4
On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

> On Sat, Mar 24, 2018 at 4:51 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:

>> On Mär 23 2018, Jason Merrill <jason@redhat.com> wrote:

>>

>>> diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp

>>> index 4ee8dd98697..a22d2ac5e20 100644

>>> --- a/gcc/testsuite/g++.dg/asan/asan.exp

>>> +++ b/gcc/testsuite/g++.dg/asan/asan.exp

>>> @@ -24,6 +24,13 @@ load_lib asan-dg.exp

>>>  dg-init

>>>  asan_init

>>>

>>> +# asan doesn't work if there's a ulimit on virtual memory.

>>> +if ![is_remote target] {

>>> +    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {

>>

>> Does that actually work?

>

> It does for me.

>

>> ulimit is a shell builtin, but exec does not use the shell.

>

> It's also a separate executable.


Not for me.

>> Also, you get an error if the command returns a non-zero

>> status, or isn't found.

>

> In that case, the result of the exec won't be a string of numbers, so

> we run the tests.


The error will abort the whole script.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Jason Merrill March 26, 2018, 6:24 p.m. | #5
On Mon, Mar 26, 2018 at 1:31 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>

>> On Sat, Mar 24, 2018 at 4:51 AM, Andreas Schwab <schwab@linux-m68k.org> wrote:

>>> On Mär 23 2018, Jason Merrill <jason@redhat.com> wrote:

>>>

>>>> diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp

>>>> index 4ee8dd98697..a22d2ac5e20 100644

>>>> --- a/gcc/testsuite/g++.dg/asan/asan.exp

>>>> +++ b/gcc/testsuite/g++.dg/asan/asan.exp

>>>> @@ -24,6 +24,13 @@ load_lib asan-dg.exp

>>>>  dg-init

>>>>  asan_init

>>>>

>>>> +# asan doesn't work if there's a ulimit on virtual memory.

>>>> +if ![is_remote target] {

>>>> +    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {

>>>

>>> Does that actually work?

>>

>> It does for me.

>>

>>> ulimit is a shell builtin, but exec does not use the shell.

>>

>> It's also a separate executable.

>

> Not for me.

>

>>> Also, you get an error if the command returns a non-zero

>>> status, or isn't found.

>>

>> In that case, the result of the exec won't be a string of numbers, so

>> we run the tests.

>

> The error will abort the whole script.


Ah, good point.  How about this?

# asan doesn't work if there's a ulimit on virtual memory.
if ![is_remote target] {
    if [catch {exec sh ulimit -v} ulimit_v] {
        # failed to get ulimit
    } elseif [regexp {^[0-9]+$} $ulimit_v] {
        # ulimit -v gave a numeric limit
        return
    }
}

Jason
Andreas Schwab March 26, 2018, 6:33 p.m. | #6
On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>     if [catch {exec sh ulimit -v} ulimit_v] {


expect1.1> exec sh ulimit -v
sh: ulimit: No such file or directory
    while executing
"exec sh ulimit -v"

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Jakub Jelinek March 26, 2018, 6:36 p.m. | #7
On Mon, Mar 26, 2018 at 08:33:41PM +0200, Andreas Schwab wrote:
> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

> 

> >     if [catch {exec sh ulimit -v} ulimit_v] {

> 

> expect1.1> exec sh ulimit -v

> sh: ulimit: No such file or directory

>     while executing

> "exec sh ulimit -v"


Perhaps
      if [catch {exec sh -c ulimit -v} ulimit_v] {

	Jakub
Andreas Schwab March 26, 2018, 6:55 p.m. | #8
On Mär 26 2018, Jakub Jelinek <jakub@redhat.com> wrote:

> On Mon, Mar 26, 2018 at 08:33:41PM +0200, Andreas Schwab wrote:

>> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>> 

>> >     if [catch {exec sh ulimit -v} ulimit_v] {

>> 

>> expect1.1> exec sh ulimit -v

>> sh: ulimit: No such file or directory

>>     while executing

>> "exec sh ulimit -v"

>

> Perhaps

>       if [catch {exec sh -c ulimit -v} ulimit_v] {


expect1.1> exec sh -c ulimit -v
unlimited
expect1.2> exec sh -c {ulimit -v}
4194304

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."
Jason Merrill March 26, 2018, 8:01 p.m. | #9
On Mon, Mar 26, 2018 at 2:55 PM, Andreas Schwab <schwab@linux-m68k.org> wrote:
> On Mär 26 2018, Jakub Jelinek <jakub@redhat.com> wrote:

>> On Mon, Mar 26, 2018 at 08:33:41PM +0200, Andreas Schwab wrote:

>>> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>>>

>>> >     if [catch {exec sh ulimit -v} ulimit_v] {

>>>

>>> expect1.1> exec sh ulimit -v

>>> sh: ulimit: No such file or directory

>>>     while executing

>>> "exec sh ulimit -v"

>>

>> Perhaps

>>       if [catch {exec sh -c ulimit -v} ulimit_v] {

>

> expect1.1> exec sh -c ulimit -v

> unlimited

> expect1.2> exec sh -c {ulimit -v}

> 4194304


OK, so

if ![is_remote target] {
    if [catch {exec sh -c "ulimit -v"} ulimit_v] {
        # failed to get ulimit
    } elseif [regexp {^[0-9]+$} $ulimit_v] {
        # ulimit -v gave a numeric limit
        return
    }
}
Jason Merrill April 3, 2018, 5:23 p.m. | #10
On Tue, Apr 3, 2018 at 12:56 PM, Jason Merrill <jason@redhat.com> wrote:
> On Mon, Mar 26, 2018 at 4:01 PM, Jason Merrill <jason@redhat.com> wrote:

>>

>> On Mon, Mar 26, 2018 at 2:55 PM, Andreas Schwab <schwab@linux-m68k.org>

>> wrote:

>> > On Mär 26 2018, Jakub Jelinek <jakub@redhat.com> wrote:

>> >> On Mon, Mar 26, 2018 at 08:33:41PM +0200, Andreas Schwab wrote:

>> >>> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>> >>>

>> >>> >     if [catch {exec sh ulimit -v} ulimit_v] {

>> >>>

>> >>> expect1.1> exec sh ulimit -v

>> >>> sh: ulimit: No such file or directory

>> >>>     while executing

>> >>> "exec sh ulimit -v"

>> >>

>> >> Perhaps

>> >>       if [catch {exec sh -c ulimit -v} ulimit_v] {

>> >

>> > expect1.1> exec sh -c ulimit -v

>> > unlimited

>> > expect1.2> exec sh -c {ulimit -v}

>> > 4194304

>>

>> OK, so

>>

>> if ![is_remote target] {

>>     if [catch {exec sh -c "ulimit -v"} ulimit_v] {

>>         # failed to get ulimit

>>     } elseif [regexp {^[0-9]+$} $ulimit_v] {

>>         # ulimit -v gave a numeric limit

>>         return

>>     }

>> }

>

>

> This version adds a warning.  OK for trunk?
commit 4ef44677627206e8ccc097a3dc3c411f6c4baece
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Mar 23 11:14:50 2018 -0400

            * gcc.dg/asan/asan.exp: Don't run tests if ulimit -v is set.
    
            * g++.dg/asan/asan.exp: Likewise.

diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp
index 4ee8dd98697..5663ac6b635 100644
--- a/gcc/testsuite/g++.dg/asan/asan.exp
+++ b/gcc/testsuite/g++.dg/asan/asan.exp
@@ -24,6 +24,17 @@ load_lib asan-dg.exp
 dg-init
 asan_init
 
+# asan doesn't work if there's a ulimit on virtual memory.
+if ![is_remote target] {
+    if [catch {exec sh -c "ulimit -v"} ulimit_v] {
+	# failed to get ulimit
+    } elseif [regexp {^[0-9]+$} $ulimit_v] {
+	# ulimit -v gave a numeric limit
+	warning "skipping asan tests due to ulimit -v"
+	return
+    }
+}
+
 # Main loop.
 if [check_effective_target_fsanitize_address] {
   gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C $srcdir/c-c++-common/asan/*.c]] "" ""
diff --git a/gcc/testsuite/gcc.dg/asan/asan.exp b/gcc/testsuite/gcc.dg/asan/asan.exp
index 7b669056a97..11135765911 100644
--- a/gcc/testsuite/gcc.dg/asan/asan.exp
+++ b/gcc/testsuite/gcc.dg/asan/asan.exp
@@ -26,6 +26,17 @@ load_lib asan-dg.exp
 dg-init
 asan_init
 
+# asan doesn't work if there's a ulimit on virtual memory.
+if ![is_remote target] {
+    if [catch {exec sh -c "ulimit -v"} ulimit_v] {
+	# failed to get ulimit
+    } elseif [regexp {^[0-9]+$} $ulimit_v] {
+	# ulimit -v gave a numeric limit
+	warning "skipping asan tests due to ulimit -v"
+	return
+    }
+}
+
 # Main loop.
 if [check_effective_target_fsanitize_address] {
   gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c $srcdir/c-c++-common/asan/*.c]] "" ""
Jason Merrill April 11, 2018, 5:59 p.m. | #11
On Tue, Apr 3, 2018 at 1:23 PM, Jason Merrill <jason@redhat.com> wrote:
> On Tue, Apr 3, 2018 at 12:56 PM, Jason Merrill <jason@redhat.com> wrote:

>> On Mon, Mar 26, 2018 at 4:01 PM, Jason Merrill <jason@redhat.com> wrote:

>>>

>>> On Mon, Mar 26, 2018 at 2:55 PM, Andreas Schwab <schwab@linux-m68k.org>

>>> wrote:

>>> > On Mär 26 2018, Jakub Jelinek <jakub@redhat.com> wrote:

>>> >> On Mon, Mar 26, 2018 at 08:33:41PM +0200, Andreas Schwab wrote:

>>> >>> On Mär 26 2018, Jason Merrill <jason@redhat.com> wrote:

>>> >>>

>>> >>> >     if [catch {exec sh ulimit -v} ulimit_v] {

>>> >>>

>>> >>> expect1.1> exec sh ulimit -v

>>> >>> sh: ulimit: No such file or directory

>>> >>>     while executing

>>> >>> "exec sh ulimit -v"

>>> >>

>>> >> Perhaps

>>> >>       if [catch {exec sh -c ulimit -v} ulimit_v] {

>>> >

>>> > expect1.1> exec sh -c ulimit -v

>>> > unlimited

>>> > expect1.2> exec sh -c {ulimit -v}

>>> > 4194304

>>>

>>> OK, so

>>>

>>> if ![is_remote target] {

>>>     if [catch {exec sh -c "ulimit -v"} ulimit_v] {

>>>         # failed to get ulimit

>>>     } elseif [regexp {^[0-9]+$} $ulimit_v] {

>>>         # ulimit -v gave a numeric limit

>>>         return

>>>     }

>>> }

>>

>> This version adds a warning.  OK for trunk?


And this one puts the check in asan_init rather than its users.  OK?
commit 8b2e4c11607171426da477d6a81225e333c0b735
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Mar 23 11:14:50 2018 -0400

            * lib/asan-dg.exp (asan_init): Don't run tests if ulimit -v is set.

diff --git a/gcc/testsuite/lib/asan-dg.exp b/gcc/testsuite/lib/asan-dg.exp
index 25f1de45879..11a96ad000a 100644
--- a/gcc/testsuite/lib/asan-dg.exp
+++ b/gcc/testsuite/lib/asan-dg.exp
@@ -89,6 +89,17 @@ proc asan_init { args } {
     global asan_saved_TEST_ALWAYS_FLAGS
     global asan_saved_ALWAYS_CXXFLAGS
 
+    # asan doesn't work if there's a ulimit on virtual memory.
+    if ![is_remote target] {
+	if [catch {exec sh -c "ulimit -v"} ulimit_v] {
+	    # failed to get ulimit
+	} elseif [regexp {^[0-9]+$} $ulimit_v] {
+	    # ulimit -v gave a numeric limit
+	    warning "skipping asan tests due to ulimit -v"
+	    return -code return
+	}
+    }
+
     set link_flags ""
     if ![is_remote host] {
 	if [info exists TOOL_OPTIONS] {
Jakub Jelinek April 11, 2018, 6:07 p.m. | #12
On Wed, Apr 11, 2018 at 01:59:40PM -0400, Jason Merrill wrote:
> And this one puts the check in asan_init rather than its users.  OK?


tsan tests have the same problem.  Wouldn't it be better to have a helper
procedure for this and use it next to
if [check_effective_target_fsanitize_address] {
or fsanitize_thread
in g*.dg/[at]san/[at]san.exp?
What exactly does return -code return?  asan_init is invoked after dg-init
and so I'd be afraid dg-finish which should be done will not be invoked.

> commit 8b2e4c11607171426da477d6a81225e333c0b735

> Author: Jason Merrill <jason@redhat.com>

> Date:   Fri Mar 23 11:14:50 2018 -0400

> 

>             * lib/asan-dg.exp (asan_init): Don't run tests if ulimit -v is set.

> 

> diff --git a/gcc/testsuite/lib/asan-dg.exp b/gcc/testsuite/lib/asan-dg.exp

> index 25f1de45879..11a96ad000a 100644

> --- a/gcc/testsuite/lib/asan-dg.exp

> +++ b/gcc/testsuite/lib/asan-dg.exp

> @@ -89,6 +89,17 @@ proc asan_init { args } {

>      global asan_saved_TEST_ALWAYS_FLAGS

>      global asan_saved_ALWAYS_CXXFLAGS

>  

> +    # asan doesn't work if there's a ulimit on virtual memory.

> +    if ![is_remote target] {

> +	if [catch {exec sh -c "ulimit -v"} ulimit_v] {

> +	    # failed to get ulimit

> +	} elseif [regexp {^[0-9]+$} $ulimit_v] {

> +	    # ulimit -v gave a numeric limit

> +	    warning "skipping asan tests due to ulimit -v"

> +	    return -code return

> +	}

> +    }

> +

>      set link_flags ""

>      if ![is_remote host] {

>  	if [info exists TOOL_OPTIONS] {



	Jakub
Jason Merrill April 11, 2018, 6:28 p.m. | #13
On Wed, Apr 11, 2018 at 2:07 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Apr 11, 2018 at 01:59:40PM -0400, Jason Merrill wrote:

>> And this one puts the check in asan_init rather than its users.  OK?

>

> tsan tests have the same problem.


Hmm, tsan tests work fine for me under ulimit -v.

> Wouldn't it be better to have a helper procedure for this and use it next to

> if [check_effective_target_fsanitize_address]


Ah, of course, that's where it belongs.  Done below.

> What exactly does return -code return?


It forces the caller to return as well.
commit f980f806f93982ba54390d45ac5ccc8b350b160c
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Mar 23 11:14:50 2018 -0400

            * lib/asan-dg.exp: Don't run tests if ulimit -v is set.

diff --git a/gcc/testsuite/lib/asan-dg.exp b/gcc/testsuite/lib/asan-dg.exp
index 25f1de45879..39451b98a60 100644
--- a/gcc/testsuite/lib/asan-dg.exp
+++ b/gcc/testsuite/lib/asan-dg.exp
@@ -18,9 +18,24 @@
 # code, 0 otherwise.
 
 proc check_effective_target_fsanitize_address {} {
-    return [check_no_compiler_messages fsanitize_address executable {
+    if ![check_no_compiler_messages fsanitize_address executable {
 	int main (void) { return 0; }
-    }]
+    }] {
+	return 0;
+    }
+
+    # asan doesn't work if there's a ulimit on virtual memory.
+    if ![is_remote target] {
+	if [catch {exec sh -c "ulimit -v"} ulimit_v] {
+	    # failed to get ulimit
+	} elseif [regexp {^[0-9]+$} $ulimit_v] {
+	    # ulimit -v gave a numeric limit
+	    warning "skipping asan tests due to ulimit -v"
+	    return 0;
+	}
+    }
+
+    return 1;
 }
 
 proc asan_include_flags {} {
Jakub Jelinek April 11, 2018, 6:46 p.m. | #14
On Wed, Apr 11, 2018 at 02:28:09PM -0400, Jason Merrill wrote:
> On Wed, Apr 11, 2018 at 2:07 PM, Jakub Jelinek <jakub@redhat.com> wrote:

> > On Wed, Apr 11, 2018 at 01:59:40PM -0400, Jason Merrill wrote:

> >> And this one puts the check in asan_init rather than its users.  OK?

> >

> > tsan tests have the same problem.

> 

> Hmm, tsan tests work fine for me under ulimit -v.


Weird.

> > Wouldn't it be better to have a helper procedure for this and use it next to

> > if [check_effective_target_fsanitize_address]

> 

> Ah, of course, that's where it belongs.  Done below.

> 

> > What exactly does return -code return?

> 

> It forces the caller to return as well.


> commit f980f806f93982ba54390d45ac5ccc8b350b160c

> Author: Jason Merrill <jason@redhat.com>

> Date:   Fri Mar 23 11:14:50 2018 -0400

> 

>             * lib/asan-dg.exp: Don't run tests if ulimit -v is set.


Ok.

	Jakub

Patch

commit e11e83293d6be03105eae16e92b00de591f4850e
Author: Jason Merrill <jason@redhat.com>
Date:   Fri Mar 23 11:14:50 2018 -0400

            * gcc.dg/asan/asan.exp: Don't run tests if ulimit -v is set.
    
            * g++.dg/asan/asan.exp: Likewise.

diff --git a/gcc/testsuite/g++.dg/asan/asan.exp b/gcc/testsuite/g++.dg/asan/asan.exp
index 4ee8dd98697..a22d2ac5e20 100644
--- a/gcc/testsuite/g++.dg/asan/asan.exp
+++ b/gcc/testsuite/g++.dg/asan/asan.exp
@@ -24,6 +24,13 @@  load_lib asan-dg.exp
 dg-init
 asan_init
 
+# asan doesn't work if there's a ulimit on virtual memory.
+if ![is_remote target] {
+    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {
+	return
+    }
+}
+
 # Main loop.
 if [check_effective_target_fsanitize_address] {
   gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.C $srcdir/c-c++-common/asan/*.c]] "" ""
diff --git a/gcc/testsuite/gcc.dg/asan/asan.exp b/gcc/testsuite/gcc.dg/asan/asan.exp
index 7b669056a97..bfe36e524dd 100644
--- a/gcc/testsuite/gcc.dg/asan/asan.exp
+++ b/gcc/testsuite/gcc.dg/asan/asan.exp
@@ -26,6 +26,13 @@  load_lib asan-dg.exp
 dg-init
 asan_init
 
+# asan doesn't work if there's a ulimit on virtual memory.
+if ![is_remote target] {
+    if [regexp {^[0-9]+$} "[exec ulimit -v]"] {
+	return
+    }
+}
+
 # Main loop.
 if [check_effective_target_fsanitize_address] {
   gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c $srcdir/c-c++-common/asan/*.c]] "" ""