<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Hi Marco,</div><div class=""><br class=""></div>I reverted the patch in r336474. Feel free to recommit the patch with tests fixed/disabled - I just wanted to unbreak bots to resume testing.<div class=""><br class=""></div><div class="">Thanks,</div><div class="">Michael<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 6, 2018, at 2:22 AM, Marco Castelluccio <<a href="mailto:mcastelluccio@mozilla.com" class="">mcastelluccio@mozilla.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
  
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
  
  <div text="#000000" bgcolor="#FFFFFF" class="">
    Looking at the failures, I don't think the modified code is causing
    the failures, but rather the tests I added would not pass either
    before or after the modification.<br class="">
    I'm OK with the patch being reverted, but probably the "fix" before
    relanding would just be disabling the tests until we can fix them on
    those platforms.<br class="">
    <br class="">
    Thanks,<br class="">
    Marco.<br class=""><p class=""><br class="">
    </p>
    <br class="">
    <div class="moz-cite-prefix">Il 06/07/2018 03:12, Sean Fertile ha
      scritto:<br class="">
    </div>
    <blockquote type="cite" cite="mid:OFC481472A.60B8ECDC-ON002582C2.000B4438-002582C2.000C1C38@notes.na.collabserv.com" class="">
      <div class="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica,
        sans-serif;font-size:10.5pt">
        <div dir="ltr" class="">It might be tricky to disable the failing tests
          since they pass on little-endian ppc but fail on big-endian
          ppc.  I would suggest reverting the patch for now. Zaara is
          monitoring the Power build bots right now, hopefully she can
          help you narrow down what is breaking and we can get it fixed
          before recommitting.</div>
        <div dir="ltr" class=""> </div>
        <div dir="ltr" class="">Thanks</div>
        <div dir="ltr" class="">Sean</div>
        <div dir="ltr" class=""> </div>
        <blockquote data-history-content-modified="1" dir="ltr" style="border-left:solid #aaaaaa 2px; margin-left:5px;
          padding-left:5px; direction:ltr; margin-right:0px" class="">-----
          Original message -----<br class="">
          From: Mikhail Zolotukhin <a class="moz-txt-link-rfc2396E" href="mailto:mzolotukhin@apple.com"><mzolotukhin@apple.com></a><br class="">
          To: Marco Castelluccio <a class="moz-txt-link-rfc2396E" href="mailto:mcastelluccio@mozilla.com"><mcastelluccio@mozilla.com></a><br class="">
          Cc: Sean Fertile <a class="moz-txt-link-rfc2396E" href="mailto:sfertile@ca.ibm.com"><sfertile@ca.ibm.com></a>,
          <a class="moz-txt-link-abbreviated" href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br class="">
          Subject: Re: [compiler-rt] r336365 - Make __gcov_flush flush
          counters for all shared libraries<br class="">
          Date: Thu, Jul 5, 2018 9:42 PM<br class="">
           <br class="">
          <!--Notes ACF
<meta http-equiv="Content-Type" content="text/html; " >-->It also broke <a href="http://green.lab.llvm.org/green/job/clang-stage1-configure-RA/46970/consoleFull#-68865869049ba4694-19c4-4d7e-bec5-911270d8a58c" target="_blank" moz-do-not-send="true" class="">green dragon</a> (it’s
          macos). Could you please fix/revert it to unbreak the bots?
          <div class=""> </div>
          <div class="">Thanks,</div>
          <div class="">Michael
            <div class=""> 
              <blockquote type="cite" class="">
                <div class="">On Jul 5, 2018, at 3:59 PM, Marco Castelluccio via
                  llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" moz-do-not-send="true" class="">llvm-commits@lists.llvm.org</a>>
                  wrote:</div>
                 
                <div class=""><!--Notes ACF
<meta http-equiv="Content-Type" content="text/html; charset=utf8" class="" >-->
                  <div bgcolor="#FFFFFF" text="#000000" class="">Hello Sean,<br class="">
                    yes, I've added some tests that are not passing on
                    that platform. Could we disable them there?<br class="">
                    <br class="">
                    Thanks!<br class="">
                    - Marco.<br class="">
                     
                    <div class="">Il 05/07/2018 21:21, Sean Fertile ha scritto:</div>
                    <blockquote cite="mid:OF11C2764D.4B6AC62B-ON002582C1.006FA1F0-002582C1.006FD68C@notes.na.collabserv.com" type="cite" class="">
                      <div dir="ltr" style="font-family:Arial,
                        Helvetica, sans-serif;font-size:10.5pt" class="">
                        <div dir="ltr" class="">Hi Marco, </div>
                        <div dir="ltr" class=""> </div>
                        <div dir="ltr" class="">I believe this commit broke <a href="http://lab.llvm.org:8011/builders/clang-ppc64be-linux" moz-do-not-send="true" target="_blank" class="">http://lab.llvm.org:8011/builders/clang-ppc64be-linux</a></div>
                        <div dir="ltr" class=""> </div>
                        <div dir="ltr" class="">Thanks</div>
                        <div dir="ltr" class="">Sean</div>
                        <div dir="ltr" class=""> </div>
                        <blockquote data-history-content-modified="1" dir="ltr" style="border-left:solid #aaaaaa
                          2px; margin-left:5px; padding-left:5px;
                          direction:ltr; margin-right:0px" class="">-----
                          Original message -----<br class="">
                          From: Marco Castelluccio via llvm-commits <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" moz-do-not-send="true" class=""><llvm-commits@lists.llvm.org></a><br class="">
                          Sent by: "llvm-commits" <a href="mailto:llvm-commits-bounces@lists.llvm.org" target="_blank" moz-do-not-send="true" class=""><llvm-commits-bounces@lists.llvm.org></a><br class="">
                          To: <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" moz-do-not-send="true" class="">llvm-commits@lists.llvm.org</a><br class="">
                          Cc:<br class="">
                          Subject: [compiler-rt] r336365 - Make
                          __gcov_flush flush counters for all shared
                          libraries<br class="">
                          Date: Thu, Jul 5, 2018 11:57 AM<br class="">
                           
                          <div class=""><font size="2" face="Default
                              Monospace,Courier New,Courier,monospace" class="">Author:
                              marco<br class="">
                              Date: Thu Jul  5 08:52:59 2018<br class="">
                              New Revision: 336365<br class="">
                              <br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project?rev=336365&view=rev" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=336365&view=rev</a><br class="">
                              Log:<br class="">
                              Make __gcov_flush flush counters for all
                              shared libraries<br class="">
                              <br class="">
                              Summary:<br class="">
                              This will make the behavior of
                              __gcov_flush match the GCC behavior.<br class="">
                              <br class="">
                              I would like to rename __gcov_flush to
                              __llvm_gcov_flush (in case of programs
                              linking to libraries built with different
                              compilers), but I guess we can't for
                              compatibility reasons.<br class="">
                              <br class="">
                              Reviewers: davidxl<br class="">
                              <br class="">
                              Reviewed By: davidxl<br class="">
                              <br class="">
                              Subscribers: samsonov, vitalybuka, pcc,
                              kcc, junbuml, glider, fhahn, eugenis,
                              dvyukov, davidxl, srhines, chh,
                              llvm-commits, #sanitizers<br class="">
                              <br class="">
                              Differential Revision: <a href="https://reviews.llvm.org/D48538" moz-do-not-send="true" target="_blank" class="">https://reviews.llvm.org/D48538</a><br class="">
                              <br class="">
                              Added:<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov<br class="">
                                
 compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov<br class="">
                                
                               compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test<br class="">
                                
                               compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test<br class="">
                              Modified:<br class="">
                                
                               compiler-rt/trunk/lib/profile/GCDAProfiling.c<br class="">
                                
                               compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                                
                               compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test<br class="">
                              <br class="">
                              Modified:
                              compiler-rt/trunk/lib/profile/GCDAProfiling.c<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/GCDAProfiling.c?rev=336365&r1=336364&r2=336365&view=diff" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/profile/GCDAProfiling.c?rev=336365&r1=336364&r2=336365&view=diff</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/lib/profile/GCDAProfiling.c
                              (original)<br class="">
                              +++
                              compiler-rt/trunk/lib/profile/GCDAProfiling.c
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -86,31 +86,76 @@ static uint64_t
                              file_size = 0;<br class="">
                               static int new_file = 0;<br class="">
                               static int fd = -1;<br class="">
                               <br class="">
                              -/*<br class="">
                              - * A list of functions to write out the
                              data.<br class="">
                              - */<br class="">
                              -typedef void (*writeout_fn)();<br class="">
                              +typedef void (*fn_ptr)();<br class="">
                               <br class="">
                              -struct writeout_fn_node {<br class="">
                              -  writeout_fn fn;<br class="">
                              -  struct writeout_fn_node *next;<br class="">
                              +typedef void* dynamic_object_id;<br class="">
                              +// The address of this variable
                              identifies a given dynamic object.<br class="">
                              +static dynamic_object_id current_id;<br class="">
                              +#define CURRENT_ID (&current_id)<br class="">
                              +<br class="">
                              +struct fn_node {<br class="">
                              +  dynamic_object_id id;<br class="">
                              +  fn_ptr fn;<br class="">
                              +  struct fn_node* next;<br class="">
                               };<br class="">
                               <br class="">
                              -static struct writeout_fn_node
                              *writeout_fn_head = NULL;<br class="">
                              -static struct writeout_fn_node
                              *writeout_fn_tail = NULL;<br class="">
                              +struct fn_list {<br class="">
                              +  struct fn_node *head, *tail;<br class="">
                              +};<br class="">
                               <br class="">
                               /*<br class="">
                              - *  A list of flush functions that our
                              __gcov_flush() function should call.<br class="">
                              + * A list of functions to write out the
                              data, shared between all dynamic objects.<br class="">
                                */<br class="">
                              -typedef void (*flush_fn)();<br class="">
                              +struct fn_list writeout_fn_list;<br class="">
                               <br class="">
                              -struct flush_fn_node {<br class="">
                              -  flush_fn fn;<br class="">
                              -  struct flush_fn_node *next;<br class="">
                              -};<br class="">
                              +/*<br class="">
                              + *  A list of flush functions that our
                              __gcov_flush() function should call,
                              shared between all dynamic objects.<br class="">
                              + */<br class="">
                              +struct fn_list flush_fn_list;<br class="">
                              +<br class="">
                              +static void fn_list_insert(struct
                              fn_list* list, fn_ptr fn) {<br class="">
                              +  struct fn_node* new_node =
                              malloc(sizeof(struct fn_node));<br class="">
                              +  new_node->fn = fn;<br class="">
                              +  new_node->next = NULL;<br class="">
                              +  new_node->id = CURRENT_ID;<br class="">
                              +<br class="">
                              +  if (!list->head) {<br class="">
                              +    list->head = list->tail =
                              new_node;<br class="">
                              +  } else {<br class="">
                              +    list->tail->next = new_node;<br class="">
                              +    list->tail = new_node;<br class="">
                              +  }<br class="">
                              +}<br class="">
                              +<br class="">
                              +static void fn_list_remove(struct
                              fn_list* list) {<br class="">
                              +  struct fn_node* curr = list->head;<br class="">
                              +  struct fn_node* prev = NULL;<br class="">
                              +  struct fn_node* next = NULL;<br class="">
                              +<br class="">
                              +  while (curr) {<br class="">
                              +    next = curr->next;<br class="">
                              +<br class="">
                              +    if (curr->id == CURRENT_ID) {<br class="">
                              +      if (curr == list->head) {<br class="">
                              +        list->head = next;<br class="">
                              +      }<br class="">
                              +<br class="">
                              +      if (curr == list->tail) {<br class="">
                              +        list->tail = prev;<br class="">
                              +      }<br class="">
                              +<br class="">
                              +      if (prev) {<br class="">
                              +        prev->next = next;<br class="">
                              +      }<br class="">
                              +<br class="">
                              +      free(curr);<br class="">
                              +    } else {<br class="">
                              +      prev = curr;<br class="">
                              +    }<br class="">
                               <br class="">
                              -static struct flush_fn_node
                              *flush_fn_head = NULL;<br class="">
                              -static struct flush_fn_node
                              *flush_fn_tail = NULL;<br class="">
                              +    curr = next;<br class="">
                              +  }<br class="">
                              +}<br class="">
                               <br class="">
                               static void resize_write_buffer(uint64_t
                              size) {<br class="">
                                 if (!new_file) return;<br class="">
                              @@ -403,6 +448,7 @@ void
                              llvm_gcda_summary_info() {<br class="">
                                 const uint32_t obj_summary_len = 9; /*
                              Length for gcov compatibility. */<br class="">
                                 uint32_t i;<br class="">
                                 uint32_t runs = 1;<br class="">
                              +  static uint32_t run_counted = 0; // We
                              only want to increase the run count once.<br class="">
                                 uint32_t val = 0;<br class="">
                                 uint64_t save_cur_pos = cur_pos;<br class="">
                               <br class="">
                              @@ -429,7 +475,9 @@ void
                              llvm_gcda_summary_info() {<br class="">
                               <br class="">
                                   read_32bit_value(); /* checksum,
                              unused */<br class="">
                                   read_32bit_value(); /* num, unused */<br class="">
                              -    runs += read_32bit_value(); /* Add
                              previous run count to new counter. */<br class="">
                              +    uint32_t prev_runs =
                              read_32bit_value();<br class="">
                              +    /* Add previous run count to new
                              counter, if not already counted before. */<br class="">
                              +    runs = run_counted ? prev_runs :
                              prev_runs + 1;<br class="">
                                 }<br class="">
                               <br class="">
                                 cur_pos = save_cur_pos;<br class="">
                              @@ -447,6 +495,8 @@ void
                              llvm_gcda_summary_info() {<br class="">
                                 write_bytes("\0\0\0\xa3", 4); /* tag
                              indicates 1 program */<br class="">
                                 write_32bit_value(0); /* 0 length */<br class="">
                               <br class="">
                              +  run_counted = 1;<br class="">
                              +<br class="">
                               #ifdef DEBUG_GCDAPROFILING<br class="">
                                 fprintf(stderr, "llvmgcda:   %u
                              runs\n", runs);<br class="">
                               #endif<br class="">
                              @@ -479,61 +529,34 @@ void
                              llvm_gcda_end_file() {<br class="">
                               }<br class="">
                               <br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                              -void
                              llvm_register_writeout_function(writeout_fn
                              fn) {<br class="">
                              -  struct writeout_fn_node *new_node =
                              malloc(sizeof(struct writeout_fn_node));<br class="">
                              -  new_node->fn = fn;<br class="">
                              -  new_node->next = NULL;<br class="">
                              -<br class="">
                              -  if (!writeout_fn_head) {<br class="">
                              -    writeout_fn_head = writeout_fn_tail =
                              new_node;<br class="">
                              -  } else {<br class="">
                              -    writeout_fn_tail->next = new_node;<br class="">
                              -    writeout_fn_tail = new_node;<br class="">
                              -  }<br class="">
                              +void
                              llvm_register_writeout_function(fn_ptr fn)
                              {<br class="">
                              +  fn_list_insert(&writeout_fn_list,
                              fn);<br class="">
                               }<br class="">
                               <br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                               void llvm_writeout_files(void) {<br class="">
                              -  struct writeout_fn_node *curr =
                              writeout_fn_head;<br class="">
                              +  struct fn_node *curr =
                              writeout_fn_list.head;<br class="">
                               <br class="">
                                 while (curr) {<br class="">
                              -    curr->fn();<br class="">
                              +    if (curr->id == CURRENT_ID) {<br class="">
                              +      curr->fn();<br class="">
                              +    }<br class="">
                                   curr = curr->next;<br class="">
                                 }<br class="">
                               }<br class="">
                               <br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                               void
                              llvm_delete_writeout_function_list(void) {<br class="">
                              -  while (writeout_fn_head) {<br class="">
                              -    struct writeout_fn_node *node =
                              writeout_fn_head;<br class="">
                              -    writeout_fn_head =
                              writeout_fn_head->next;<br class="">
                              -    free(node);<br class="">
                              -  }<br class="">
                              -  <br class="">
                              -  writeout_fn_head = writeout_fn_tail =
                              NULL;<br class="">
                              +  fn_list_remove(&writeout_fn_list);<br class="">
                               }<br class="">
                               <br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                              -void
                              llvm_register_flush_function(flush_fn fn)
                              {<br class="">
                              -  struct flush_fn_node *new_node =
                              malloc(sizeof(struct flush_fn_node));<br class="">
                              -  new_node->fn = fn;<br class="">
                              -  new_node->next = NULL;<br class="">
                              -<br class="">
                              -  if (!flush_fn_head) {<br class="">
                              -    flush_fn_head = flush_fn_tail =
                              new_node;<br class="">
                              -  } else {<br class="">
                              -    flush_fn_tail->next = new_node;<br class="">
                              -    flush_fn_tail = new_node;<br class="">
                              -  }<br class="">
                              +void llvm_register_flush_function(fn_ptr
                              fn) {<br class="">
                              +  fn_list_insert(&flush_fn_list, fn);<br class="">
                               }<br class="">
                               <br class="">
                              -// __gcov_flush is hidden. When called in
                              a .so file,<br class="">
                              -// it dumps profile data of the calling
                              .so file.<br class="">
                              -// If a main program needs to dump
                              profile data of each linked<br class="">
                              -// .so files, it should use dlsym to find
                              and call llvm_gcov_flush.<br class="">
                              -COMPILER_RT_VISIBILITY<br class="">
                               void __gcov_flush() {<br class="">
                              -  struct flush_fn_node *curr =
                              flush_fn_head;<br class="">
                              +  struct fn_node* curr =
                              flush_fn_list.head;<br class="">
                               <br class="">
                                 while (curr) {<br class="">
                                   curr->fn();<br class="">
                              @@ -541,25 +564,13 @@ void __gcov_flush()
                              {<br class="">
                                 }<br class="">
                               }<br class="">
                               <br class="">
                              -// llvm_gcov_flush is not hidden for a
                              program to use dlsym to<br class="">
                              -// find and call for any linked .so file.<br class="">
                              -void llvm_gcov_flush() {<br class="">
                              -  __gcov_flush();<br class="">
                              -}<br class="">
                              -<br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                               void
                              llvm_delete_flush_function_list(void) {<br class="">
                              -  while (flush_fn_head) {<br class="">
                              -    struct flush_fn_node *node =
                              flush_fn_head;<br class="">
                              -    flush_fn_head =
                              flush_fn_head->next;<br class="">
                              -    free(node);<br class="">
                              -  }<br class="">
                              -<br class="">
                              -  flush_fn_head = flush_fn_tail = NULL;<br class="">
                              +  fn_list_remove(&flush_fn_list);<br class="">
                               }<br class="">
                               <br class="">
                               COMPILER_RT_VISIBILITY<br class="">
                              -void llvm_gcov_init(writeout_fn wfn,
                              flush_fn ffn) {<br class="">
                              +void llvm_gcov_init(fn_ptr wfn, fn_ptr
                              ffn) {<br class="">
                                 static int atexit_ran = 0;<br class="">
                               <br class="">
                                 if (wfn)<br class="">
                              <br class="">
                              Modified:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c?rev=336365&r1=336364&r2=336365&view=diff" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c?rev=336365&r1=336364&r2=336365&view=diff</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c
                              (original)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -10,6 +10,12 @@ int main(int argc, char
                              *argv[]) {<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                               <br class="">
                              +  void (*func)(void) = (void
                              (*)(void))dlsym(f1_handle, "func");<br class="">
                              +  if (func == NULL) {<br class="">
                              +    fprintf(stderr, "unable to lookup
                              symbol 'func': %s\n", dlerror());<br class="">
                              +    return EXIT_FAILURE;<br class="">
                              +  }<br class="">
                              +<br class="">
                                 dlerror();<br class="">
                                 void *f2_handle =
                              dlopen("func2.shared", RTLD_LAZY |
                              RTLD_GLOBAL);<br class="">
                                 if (f2_handle == NULL) {<br class="">
                              @@ -17,31 +23,44 @@ int main(int argc,
                              char *argv[]) {<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                               <br class="">
                              -  dlerror();<br class="">
                              -  void (*gcov_flush)() = (void
                              (*)())dlsym(f1_handle, "__gcov_flush");<br class="">
                              -  if (gcov_flush != NULL || dlerror() ==
                              NULL) {<br class="">
                              -    fprintf(stderr, "__gcov_flush should
                              not be visible in func.shared'\n");<br class="">
                              +  void (*func2)(void) = (void
                              (*)(void))dlsym(f2_handle, "func2");<br class="">
                              +  if (func2 == NULL) {<br class="">
                              +    fprintf(stderr, "unable to lookup
                              symbol 'func2': %s\n", dlerror());<br class="">
                              +    return EXIT_FAILURE;<br class="">
                              +  }<br class="">
                              +  func2();<br class="">
                              +<br class="">
                              +#ifdef USE_LIB3<br class="">
                              +  void *f3_handle =
                              dlopen("func3.shared", RTLD_LAZY |
                              RTLD_GLOBAL);<br class="">
                              +  if (f3_handle == NULL) {<br class="">
                              +    fprintf(stderr, "unable to open
                              'func3.shared': %s\n", dlerror());<br class="">
                              +    return EXIT_FAILURE;<br class="">
                              +  }<br class="">
                              +<br class="">
                              +  void (*func3)(void) = (void
                              (*)(void))dlsym(f3_handle, "func3");<br class="">
                              +  if (func3 == NULL) {<br class="">
                              +    fprintf(stderr, "unable to lookup
                              symbol 'func3': %s\n", dlerror());<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                              +  func3();<br class="">
                              +#endif<br class="">
                               <br class="">
                                 dlerror();<br class="">
                              -  void (*f1_flush)() = (void
                              (*)())dlsym(f1_handle, "llvm_gcov_flush");<br class="">
                              -  if (f1_flush == NULL) {<br class="">
                              -    fprintf(stderr, "unable to find
                              llvm_gcov_flush in func.shared': %s\n",
                              dlerror());<br class="">
                              +  void (*gcov_flush1)() = (void
                              (*)())dlsym(f1_handle, "__gcov_flush");<br class="">
                              +  if (gcov_flush1 == NULL) {<br class="">
                              +    fprintf(stderr, "unable to find
                              __gcov_flush in func.shared': %s\n",
                              dlerror());<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                              -  f1_flush();<br class="">
                               <br class="">
                                 dlerror();<br class="">
                              -  void (*f2_flush)() = (void
                              (*)())dlsym(f2_handle, "llvm_gcov_flush");<br class="">
                              -  if (f2_flush == NULL) {<br class="">
                              -    fprintf(stderr, "unable to find
                              llvm_gcov_flush in func2.shared': %s\n",
                              dlerror());<br class="">
                              +  void (*gcov_flush2)() = (void
                              (*)())dlsym(f2_handle, "__gcov_flush");<br class="">
                              +  if (gcov_flush2 == NULL) {<br class="">
                              +    fprintf(stderr, "unable to find
                              __gcov_flush in func2.shared': %s\n",
                              dlerror());<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                              -  f2_flush();<br class="">
                               <br class="">
                              -  if (f1_flush == f2_flush) {<br class="">
                              -    fprintf(stderr, "Same llvm_gcov_flush
                              found in func.shared and func2.shared\n");<br class="">
                              +  if (gcov_flush1 == gcov_flush2) {<br class="">
                              +    fprintf(stderr, "Same __gcov_flush
                              found in func.shared and func2.shared\n");<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                               <br class="">
                              @@ -51,6 +70,17 @@ int main(int argc, char
                              *argv[]) {<br class="">
                                   return EXIT_FAILURE;<br class="">
                                 }<br class="">
                               <br class="">
                              +  func();<br class="">
                              +<br class="">
                              +  int g1 = 0;<br class="">
                              +  int g2 = 0;<br class="">
                              +  int n = 10;<br class="">
                              +<br class="">
                              +  if (n % 5 == 0)<br class="">
                              +    g1++;<br class="">
                              +  else<br class="">
                              +    g2++;<br class="">
                              +<br class="">
                                 return EXIT_SUCCESS;<br class="">
                               }<br class="">
                               <br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,91 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-dlopen-dlclose-main.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-dlopen-dlclose-main.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:#include
                              <dlfcn.h><br class="">
                              +// CHECK-NEXT:        -:    2:#include
                              <stdio.h><br class="">
                              +// CHECK-NEXT:        -:    3:#include
                              <stdlib.h><br class="">
                              +// CHECK-NEXT:        -:    4:<br class="">
                              +// CHECK-NEXT:        -:    5:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        1:    6:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:    7:  void
                              *f1_handle = dlopen("func.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        1:    8:  if
                              (f1_handle == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:    9:  
                               fprintf(stderr, "unable to open
                              'func.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   10:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   11:  }<br class="">
                              +// CHECK-NEXT:        -:   12:<br class="">
                              +// CHECK-NEXT:        1:   13:  void
                              (*func)(void) = (void
                              (*)(void))dlsym(f1_handle, "func");<br class="">
                              +// CHECK-NEXT:        1:   14:  if (func
                              == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   15:  
                               fprintf(stderr, "unable to lookup symbol
                              'func': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   16:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   17:  }<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   20:  void
                              *f2_handle = dlopen("func2.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        1:   21:  if
                              (f2_handle == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   22:  
                               fprintf(stderr, "unable to open
                              'func2.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   23:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   24:  }<br class="">
                              +// CHECK-NEXT:        -:   25:<br class="">
                              +// CHECK-NEXT:        1:   26:  void
                              (*func2)(void) = (void
                              (*)(void))dlsym(f2_handle, "func2");<br class="">
                              +// CHECK-NEXT:        1:   27:  if (func2
                              == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   28:  
                               fprintf(stderr, "unable to lookup symbol
                              'func2': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   29:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   30:  }<br class="">
                              +// CHECK-NEXT:        1:   31:  func2();<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        -:   33:#ifdef
                              USE_LIB3<br class="">
                              +// CHECK-NEXT:        -:   34:  void
                              *f3_handle = dlopen("func3.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        -:   35:  if
                              (f3_handle == NULL) {<br class="">
                              +// CHECK-NEXT:        -:   36:  
                               fprintf(stderr, "unable to open
                              'func3.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:        -:   37:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   38:  }<br class="">
                              +// CHECK-NEXT:        -:   39:<br class="">
                              +// CHECK-NEXT:        -:   40:  void
                              (*func3)(void) = (void
                              (*)(void))dlsym(f3_handle, "func3");<br class="">
                              +// CHECK-NEXT:        -:   41:  if (func3
                              == NULL) {<br class="">
                              +// CHECK-NEXT:        -:   42:  
                               fprintf(stderr, "unable to lookup symbol
                              'func3': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:        -:   43:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   44:  }<br class="">
                              +// CHECK-NEXT:        -:   45:  func3();<br class="">
                              +// CHECK-NEXT:        -:   46:#endif<br class="">
                              +// CHECK-NEXT:        -:   47:<br class="">
                              +// CHECK-NEXT:        1:   48:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   49:  void
                              (*gcov_flush1)() = (void
                              (*)())dlsym(f1_handle, "__gcov_flush");<br class="">
                              +// CHECK-NEXT:        1:   50:  if
                              (gcov_flush1 == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   51:  
                               fprintf(stderr, "unable to find
                              __gcov_flush in func.shared': %s\n",
                              dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   52:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   53:  }<br class="">
                              +// CHECK-NEXT:        -:   54:<br class="">
                              +// CHECK-NEXT:        1:   55:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   56:  void
                              (*gcov_flush2)() = (void
                              (*)())dlsym(f2_handle, "__gcov_flush");<br class="">
                              +// CHECK-NEXT:        1:   57:  if
                              (gcov_flush2 == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   58:  
                               fprintf(stderr, "unable to find
                              __gcov_flush in func2.shared': %s\n",
                              dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   59:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   60:  }<br class="">
                              +// CHECK-NEXT:        -:   61:<br class="">
                              +// CHECK-NEXT:        1:   62:  if
                              (gcov_flush1 == gcov_flush2) {<br class="">
                              +// CHECK-NEXT:    #####:   63:  
                               fprintf(stderr, "Same __gcov_flush found
                              in func.shared and func2.shared\n");<br class="">
                              +// CHECK-NEXT:    #####:   64:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   65:  }<br class="">
                              +// CHECK-NEXT:        -:   66:<br class="">
                              +// CHECK-NEXT:        1:   67:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   68:  if
                              (dlclose(f2_handle) != 0) {<br class="">
                              +// CHECK-NEXT:    #####:   69:  
                               fprintf(stderr, "unable to close
                              'func2.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   70:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   71:  }<br class="">
                              +// CHECK-NEXT:        -:   72:<br class="">
                              +// CHECK-NEXT:        1:   73:  func();<br class="">
                              +// CHECK-NEXT:        -:   74:<br class="">
                              +// CHECK-NEXT:        1:   75:  int g1 =
                              0;<br class="">
                              +// CHECK-NEXT:        1:   76:  int g2 =
                              0;<br class="">
                              +// CHECK-NEXT:        1:   77:  int n =
                              10;<br class="">
                              +// CHECK-NEXT:        -:   78:<br class="">
                              +// CHECK-NEXT:        1:   79:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        1:   80:    g1++;<br class="">
                              +// CHECK-NEXT:        -:   81:  else<br class="">
                              +// CHECK-NEXT:    #####:   82:    g2++;<br class="">
                              +// CHECK-NEXT:        -:   83:<br class="">
                              +// CHECK-NEXT:        1:   84:  return
                              EXIT_SUCCESS;<br class="">
                              +// CHECK-NEXT:        1:   85:}<br class="">
                              +// CHECK-NEXT:        -:   86:<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,91 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-dlopen-dlclose-main.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-dlopen-dlclose-main.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:#include
                              <dlfcn.h><br class="">
                              +// CHECK-NEXT:        -:    2:#include
                              <stdio.h><br class="">
                              +// CHECK-NEXT:        -:    3:#include
                              <stdlib.h><br class="">
                              +// CHECK-NEXT:        -:    4:<br class="">
                              +// CHECK-NEXT:        -:    5:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        1:    6:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:    7:  void
                              *f1_handle = dlopen("func.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        1:    8:  if
                              (f1_handle == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:    9:  
                               fprintf(stderr, "unable to open
                              'func.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   10:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   11:  }<br class="">
                              +// CHECK-NEXT:        -:   12:<br class="">
                              +// CHECK-NEXT:        1:   13:  void
                              (*func)(void) = (void
                              (*)(void))dlsym(f1_handle, "func");<br class="">
                              +// CHECK-NEXT:        1:   14:  if (func
                              == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   15:  
                               fprintf(stderr, "unable to lookup symbol
                              'func': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   16:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   17:  }<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   20:  void
                              *f2_handle = dlopen("func2.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        1:   21:  if
                              (f2_handle == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   22:  
                               fprintf(stderr, "unable to open
                              'func2.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   23:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   24:  }<br class="">
                              +// CHECK-NEXT:        -:   25:<br class="">
                              +// CHECK-NEXT:        1:   26:  void
                              (*func2)(void) = (void
                              (*)(void))dlsym(f2_handle, "func2");<br class="">
                              +// CHECK-NEXT:        1:   27:  if (func2
                              == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   28:  
                               fprintf(stderr, "unable to lookup symbol
                              'func2': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   29:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   30:  }<br class="">
                              +// CHECK-NEXT:        1:   31:  func2();<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        -:   33:#ifdef
                              USE_LIB3<br class="">
                              +// CHECK-NEXT:        1:   34:  void
                              *f3_handle = dlopen("func3.shared",
                              RTLD_LAZY | RTLD_GLOBAL);<br class="">
                              +// CHECK-NEXT:        1:   35:  if
                              (f3_handle == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   36:  
                               fprintf(stderr, "unable to open
                              'func3.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   37:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   38:  }<br class="">
                              +// CHECK-NEXT:        -:   39:<br class="">
                              +// CHECK-NEXT:        1:   40:  void
                              (*func3)(void) = (void
                              (*)(void))dlsym(f3_handle, "func3");<br class="">
                              +// CHECK-NEXT:        1:   41:  if (func3
                              == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   42:  
                               fprintf(stderr, "unable to lookup symbol
                              'func3': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   43:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   44:  }<br class="">
                              +// CHECK-NEXT:        1:   45:  func3();<br class="">
                              +// CHECK-NEXT:        -:   46:#endif<br class="">
                              +// CHECK-NEXT:        -:   47:<br class="">
                              +// CHECK-NEXT:        1:   48:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   49:  void
                              (*gcov_flush1)() = (void
                              (*)())dlsym(f1_handle, "__gcov_flush");<br class="">
                              +// CHECK-NEXT:        1:   50:  if
                              (gcov_flush1 == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   51:  
                               fprintf(stderr, "unable to find
                              __gcov_flush in func.shared': %s\n",
                              dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   52:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   53:  }<br class="">
                              +// CHECK-NEXT:        -:   54:<br class="">
                              +// CHECK-NEXT:        1:   55:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   56:  void
                              (*gcov_flush2)() = (void
                              (*)())dlsym(f2_handle, "__gcov_flush");<br class="">
                              +// CHECK-NEXT:        1:   57:  if
                              (gcov_flush2 == NULL) {<br class="">
                              +// CHECK-NEXT:    #####:   58:  
                               fprintf(stderr, "unable to find
                              __gcov_flush in func2.shared': %s\n",
                              dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   59:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   60:  }<br class="">
                              +// CHECK-NEXT:        -:   61:<br class="">
                              +// CHECK-NEXT:        1:   62:  if
                              (gcov_flush1 == gcov_flush2) {<br class="">
                              +// CHECK-NEXT:    #####:   63:  
                               fprintf(stderr, "Same __gcov_flush found
                              in func.shared and func2.shared\n");<br class="">
                              +// CHECK-NEXT:    #####:   64:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   65:  }<br class="">
                              +// CHECK-NEXT:        -:   66:<br class="">
                              +// CHECK-NEXT:        1:   67:
                               dlerror();<br class="">
                              +// CHECK-NEXT:        1:   68:  if
                              (dlclose(f2_handle) != 0) {<br class="">
                              +// CHECK-NEXT:    #####:   69:  
                               fprintf(stderr, "unable to close
                              'func2.shared': %s\n", dlerror());<br class="">
                              +// CHECK-NEXT:    #####:   70:    return
                              EXIT_FAILURE;<br class="">
                              +// CHECK-NEXT:        -:   71:  }<br class="">
                              +// CHECK-NEXT:        -:   72:<br class="">
                              +// CHECK-NEXT:        1:   73:  func();<br class="">
                              +// CHECK-NEXT:        -:   74:<br class="">
                              +// CHECK-NEXT:        1:   75:  int g1 =
                              0;<br class="">
                              +// CHECK-NEXT:        1:   76:  int g2 =
                              0;<br class="">
                              +// CHECK-NEXT:        1:   77:  int n =
                              10;<br class="">
                              +// CHECK-NEXT:        -:   78:<br class="">
                              +// CHECK-NEXT:        1:   79:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        1:   80:    g1++;<br class="">
                              +// CHECK-NEXT:        -:   81:  else<br class="">
                              +// CHECK-NEXT:    #####:   82:    g2++;<br class="">
                              +// CHECK-NEXT:        -:   83:<br class="">
                              +// CHECK-NEXT:        1:   84:  return
                              EXIT_SUCCESS;<br class="">
                              +// CHECK-NEXT:        1:   85:}<br class="">
                              +// CHECK-NEXT:        -:   86:<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,6 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-dlopen-func.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-dlopen-func.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-dlopen-func.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        3:    1:void
                              func(int K) { if (K) {} }<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func2.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,6 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-dlopen-func2.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-dlopen-func2.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-dlopen-func2.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        3:    1:void
                              func2(int K) { if (K) {} }<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1 @@<br class="">
                              +void func3(int K) { if (K) {} }<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-dlopen-func3.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,6 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-dlopen-func2.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-dlopen-func2.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-dlopen-func2.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        3:    1:void
                              func2(int K) { if (K) {} }<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,14 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-lib.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-lib.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-lib.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:int g1 = 0;<br class="">
                              +// CHECK-NEXT:        -:    2:int g2 = 1;<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:void
                              foo(int n) {<br class="">
                              +// CHECK-NEXT:        1:    5:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:    #####:    6:    g1++;<br class="">
                              +// CHECK-NEXT:        -:    7:  else<br class="">
                              +// CHECK-NEXT:        1:    8:    g2++;<br class="">
                              +// CHECK-NEXT:        1:    9:}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_called-twice.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,14 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-lib.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-lib.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-lib.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:int g1 = 0;<br class="">
                              +// CHECK-NEXT:        -:    2:int g2 = 1;<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:void
                              foo(int n) {<br class="">
                              +// CHECK-NEXT:        2:    5:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:    #####:    6:    g1++;<br class="">
                              +// CHECK-NEXT:        -:    7:  else<br class="">
                              +// CHECK-NEXT:        2:    8:    g2++;<br class="">
                              +// CHECK-NEXT:        2:    9:}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-lib_in-loop.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,14 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-lib.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-lib.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-lib.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:int g1 = 0;<br class="">
                              +// CHECK-NEXT:        -:    2:int g2 = 1;<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:void
                              foo(int n) {<br class="">
                              +// CHECK-NEXT:  1000000:    5:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:   360000:    6:    g1++;<br class="">
                              +// CHECK-NEXT:        -:    7:  else<br class="">
                              +// CHECK-NEXT:   640000:    8:    g2++;<br class="">
                              +// CHECK-NEXT:  1000000:    9:}<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush.c
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,36 @@<br class="">
                              +extern void foo(int n);<br class="">
                              +extern void __gcov_flush(void);<br class="">
                              +<br class="">
                              +int bar1 = 0;<br class="">
                              +int bar2 = 1;<br class="">
                              +<br class="">
                              +void bar(int n) {<br class="">
                              +  if (n % 5 == 0)<br class="">
                              +    bar1++;<br class="">
                              +  else<br class="">
                              +    bar2++;<br class="">
                              +}<br class="">
                              +<br class="">
                              +int main(int argc, char *argv[]) {<br class="">
                              +#ifdef SHARED_CALL_BEFORE_GCOV_FLUSH<br class="">
                              +  foo(1);<br class="">
                              +#endif<br class="">
                              +<br class="">
                              +  bar(5);<br class="">
                              +<br class="">
                              +  __gcov_flush();<br class="">
                              +<br class="">
                              +  bar(5);<br class="">
                              +<br class="">
                              +#ifdef SHARED_CALL_AFTER_GCOV_FLUSH<br class="">
                              +  foo(1);<br class="">
                              +#endif<br class="">
                              +<br class="">
                              +#ifdef EXIT_ABRUPTLY<br class="">
                              +  _exit(0);<br class="">
                              +#endif<br class="">
                              +<br class="">
                              +  bar(5);<br class="">
                              +<br class="">
                              +  return 0;<br class="">
                              +}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,41 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-main-gcov-flush.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-main-gcov-flush.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:extern void
                              foo(int n);<br class="">
                              +// CHECK-NEXT:        -:    2:extern void
                              __gcov_flush(void);<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:int bar1 =
                              0;<br class="">
                              +// CHECK-NEXT:        -:    5:int bar2 =
                              1;<br class="">
                              +// CHECK-NEXT:        -:    6:<br class="">
                              +// CHECK-NEXT:        -:    7:void
                              bar(int n) {<br class="">
                              +// CHECK-NEXT:        1:    8:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        1:    9:    bar1++;<br class="">
                              +// CHECK-NEXT:        -:   10:  else<br class="">
                              +// CHECK-NEXT:    #####:   11:    bar2++;<br class="">
                              +// CHECK-NEXT:        1:   12:}<br class="">
                              +// CHECK-NEXT:        -:   13:<br class="">
                              +// CHECK-NEXT:        -:   14:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        -:   15:#ifdef
                              SHARED_CALL_BEFORE_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   16:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   17:#endif<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   20:<br class="">
                              +// CHECK-NEXT:        1:   21:
                               __gcov_flush();<br class="">
                              +// CHECK-NEXT:        -:   22:<br class="">
                              +// CHECK-NEXT:        1:   23:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   24:<br class="">
                              +// CHECK-NEXT:        -:   25:#ifdef
                              SHARED_CALL_AFTER_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   26:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   27:#endif<br class="">
                              +// CHECK-NEXT:        -:   28:<br class="">
                              +// CHECK-NEXT:        -:   29:#ifdef
                              EXIT_ABRUPTLY<br class="">
                              +// CHECK-NEXT:        1:   30:  _exit(0);<br class="">
                              +// CHECK-NEXT:        -:   31:#endif<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        -:   33:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   34:<br class="">
                              +// CHECK-NEXT:        -:   35:  return 0;<br class="">
                              +// CHECK-NEXT:    #####:   36:}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,41 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-main-gcov-flush.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-main-gcov-flush.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:extern void
                              foo(int n);<br class="">
                              +// CHECK-NEXT:        -:    2:extern void
                              __gcov_flush(void);<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:int bar1 =
                              0;<br class="">
                              +// CHECK-NEXT:        -:    5:int bar2 =
                              1;<br class="">
                              +// CHECK-NEXT:        -:    6:<br class="">
                              +// CHECK-NEXT:        -:    7:void
                              bar(int n) {<br class="">
                              +// CHECK-NEXT:        3:    8:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        3:    9:    bar1++;<br class="">
                              +// CHECK-NEXT:        -:   10:  else<br class="">
                              +// CHECK-NEXT:    #####:   11:    bar2++;<br class="">
                              +// CHECK-NEXT:        3:   12:}<br class="">
                              +// CHECK-NEXT:        -:   13:<br class="">
                              +// CHECK-NEXT:        -:   14:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        -:   15:#ifdef
                              SHARED_CALL_BEFORE_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        -:   16:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   17:#endif<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   20:<br class="">
                              +// CHECK-NEXT:        1:   21:
                               __gcov_flush();<br class="">
                              +// CHECK-NEXT:        -:   22:<br class="">
                              +// CHECK-NEXT:        1:   23:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   24:<br class="">
                              +// CHECK-NEXT:        -:   25:#ifdef
                              SHARED_CALL_AFTER_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   26:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   27:#endif<br class="">
                              +// CHECK-NEXT:        -:   28:<br class="">
                              +// CHECK-NEXT:        -:   29:#ifdef
                              EXIT_ABRUPTLY<br class="">
                              +// CHECK-NEXT:        -:   30:  _exit(0);<br class="">
                              +// CHECK-NEXT:        -:   31:#endif<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        1:   33:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   34:<br class="">
                              +// CHECK-NEXT:        1:   35:  return 0;<br class="">
                              +// CHECK-NEXT:        -:   36:}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,41 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-main-gcov-flush.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-main-gcov-flush.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:extern void
                              foo(int n);<br class="">
                              +// CHECK-NEXT:        -:    2:extern void
                              __gcov_flush(void);<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:int bar1 =
                              0;<br class="">
                              +// CHECK-NEXT:        -:    5:int bar2 =
                              1;<br class="">
                              +// CHECK-NEXT:        -:    6:<br class="">
                              +// CHECK-NEXT:        -:    7:void
                              bar(int n) {<br class="">
                              +// CHECK-NEXT:        3:    8:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        3:    9:    bar1++;<br class="">
                              +// CHECK-NEXT:        -:   10:  else<br class="">
                              +// CHECK-NEXT:    #####:   11:    bar2++;<br class="">
                              +// CHECK-NEXT:        3:   12:}<br class="">
                              +// CHECK-NEXT:        -:   13:<br class="">
                              +// CHECK-NEXT:        -:   14:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        -:   15:#ifdef
                              SHARED_CALL_BEFORE_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   16:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   17:#endif<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   20:<br class="">
                              +// CHECK-NEXT:        1:   21:
                               __gcov_flush();<br class="">
                              +// CHECK-NEXT:        -:   22:<br class="">
                              +// CHECK-NEXT:        1:   23:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   24:<br class="">
                              +// CHECK-NEXT:        -:   25:#ifdef
                              SHARED_CALL_AFTER_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   26:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   27:#endif<br class="">
                              +// CHECK-NEXT:        -:   28:<br class="">
                              +// CHECK-NEXT:        -:   29:#ifdef
                              EXIT_ABRUPTLY<br class="">
                              +// CHECK-NEXT:        -:   30:  _exit(0);<br class="">
                              +// CHECK-NEXT:        -:   31:#endif<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        1:   33:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   34:<br class="">
                              +// CHECK-NEXT:        1:   35:  return 0;<br class="">
                              +// CHECK-NEXT:        -:   36:}<br class="">
                              <br class="">
                              Added:
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov
                              (added)<br class="">
                              +++
compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,41 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-main-gcov-flush.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-main-gcov-flush.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:extern void
                              foo(int n);<br class="">
                              +// CHECK-NEXT:        -:    2:extern void
                              __gcov_flush(void);<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:int bar1 =
                              0;<br class="">
                              +// CHECK-NEXT:        -:    5:int bar2 =
                              1;<br class="">
                              +// CHECK-NEXT:        -:    6:<br class="">
                              +// CHECK-NEXT:        -:    7:void
                              bar(int n) {<br class="">
                              +// CHECK-NEXT:        3:    8:  if (n % 5
                              == 0)<br class="">
                              +// CHECK-NEXT:        3:    9:    bar1++;<br class="">
                              +// CHECK-NEXT:        -:   10:  else<br class="">
                              +// CHECK-NEXT:    #####:   11:    bar2++;<br class="">
                              +// CHECK-NEXT:        3:   12:}<br class="">
                              +// CHECK-NEXT:        -:   13:<br class="">
                              +// CHECK-NEXT:        -:   14:int
                              main(int argc, char *argv[]) {<br class="">
                              +// CHECK-NEXT:        -:   15:#ifdef
                              SHARED_CALL_BEFORE_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        1:   16:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   17:#endif<br class="">
                              +// CHECK-NEXT:        -:   18:<br class="">
                              +// CHECK-NEXT:        1:   19:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   20:<br class="">
                              +// CHECK-NEXT:        1:   21:
                               __gcov_flush();<br class="">
                              +// CHECK-NEXT:        -:   22:<br class="">
                              +// CHECK-NEXT:        1:   23:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   24:<br class="">
                              +// CHECK-NEXT:        -:   25:#ifdef
                              SHARED_CALL_AFTER_GCOV_FLUSH<br class="">
                              +// CHECK-NEXT:        -:   26:  foo(1);<br class="">
                              +// CHECK-NEXT:        -:   27:#endif<br class="">
                              +// CHECK-NEXT:        -:   28:<br class="">
                              +// CHECK-NEXT:        -:   29:#ifdef
                              EXIT_ABRUPTLY<br class="">
                              +// CHECK-NEXT:        -:   30:  _exit(0);<br class="">
                              +// CHECK-NEXT:        -:   31:#endif<br class="">
                              +// CHECK-NEXT:        -:   32:<br class="">
                              +// CHECK-NEXT:        1:   33:  bar(5);<br class="">
                              +// CHECK-NEXT:        -:   34:<br class="">
                              +// CHECK-NEXT:        1:   35:  return 0;<br class="">
                              +// CHECK-NEXT:        -:   36:}<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/Inputs/instrprof-shared-main.c.gcov
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,18 @@<br class="">
                              +// CHECK:        -:  
                               0:Source:{{.*}}Inputs/instrprof-shared-main.c<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Graph:instrprof-shared-main.gcno<br class="">
                              +// CHECK-NEXT:        -:  
                               0:Data:instrprof-shared-main.gcda<br class="">
                              +// CHECK-NEXT:        -:    0:Runs:1<br class="">
                              +// CHECK-NEXT:        -:    0:Programs:1<br class="">
                              +// CHECK-NEXT:        -:    1:extern int
                              g1, g2;<br class="">
                              +// CHECK-NEXT:        -:    2:extern void
                              foo(int n);<br class="">
                              +// CHECK-NEXT:        -:    3:<br class="">
                              +// CHECK-NEXT:        -:    4:int main()
                              {<br class="">
                              +// CHECK-NEXT:        -:    5:  int i, j;<br class="">
                              +// CHECK-NEXT:     2002:    6:  for (i =
                              0; i < 1000; i++)<br class="">
                              +// CHECK-NEXT:  2002000:    7:    for (j
                              = 0; j < 1000; j++)<br class="">
                              +// CHECK-NEXT:  1001000:    8:      foo(i
                              * j);<br class="">
                              +// CHECK-NEXT:        -:    9:<br class="">
                              +// CHECK-NEXT:        1:   10:  if (g2 -
                              g1 == 280001)<br class="">
                              +// CHECK-NEXT:        1:   11:    return
                              0;<br class="">
                              +// CHECK-NEXT:    #####:   12:  return 1;<br class="">
                              +// CHECK-NEXT:        1:   13:}<br class="">
                              <br class="">
                              Modified:
                              compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test?rev=336365&r1=336364&r2=336365&view=diff" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test?rev=336365&r1=336364&r2=336365&view=diff</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test
                              (original)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/instrprof-dlopen-dlclose-gcov.test
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -1,6 +1,30 @@<br class="">
                               RUN: mkdir -p %t.d<br class="">
                              -RUN: %clang --coverage -o
                              %t.d/func.shared -fPIC -shared
                              %S/Inputs/instrprof-dlopen-func.c<br class="">
                              -RUN: %clang --coverage -o
                              %t.d/func2.shared -fPIC -shared
                              %S/Inputs/instrprof-dlopen-func2.c<br class="">
                              +RUN: cd %t.d<br class="">
                              +<br class="">
                              +RUN: %clang --coverage -o func.shared
                              -fPIC -shared
                              %S/Inputs/instrprof-dlopen-func.c<br class="">
                              +RUN: %clang --coverage -o func2.shared
                              -fPIC -shared
                              %S/Inputs/instrprof-dlopen-func2.c<br class="">
                              +RUN: %clang --coverage -o func3.shared
                              -fPIC -shared
                              %S/Inputs/instrprof-dlopen-func3.c<br class="">
                               RUN: %clang --coverage -o %t -fPIC -rpath
                              %t.d
                              %S/Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                               <br class="">
                              +# Test with two dlopened libraries.<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-dlclose-main.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-dlclose-main.c.gcov
                              %S/Inputs/instrprof-dlopen-dlclose-main.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-func.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-func.c.gcov
                              %S/Inputs/instrprof-dlopen-func.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-func2.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-func2.c.gcov
                              %S/Inputs/instrprof-dlopen-func2.c.gcov<br class="">
                              +RUN: rm
                              instrprof-dlopen-dlclose-main.gcda
                              instrprof-dlopen-func.gcda
                              instrprof-dlopen-func2.gcda<br class="">
                              +<br class="">
                              +# Test with three dlopened libraries.<br class="">
                              +RUN: %clang -DUSE_LIB3 --coverage -o %t
                              -fPIC -rpath %t.d
                              %S/Inputs/instrprof-dlopen-dlclose-main.c<br class="">
                               RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-dlclose-main.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-dlclose-main.c.gcov
                              %S/Inputs/instrprof-dlopen-dlclose-main_three-libs.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-func.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-func.c.gcov
                              %S/Inputs/instrprof-dlopen-func.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-func2.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-func2.c.gcov
                              %S/Inputs/instrprof-dlopen-func2.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-dlopen-func3.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-dlopen-func2.c.gcov
                              %S/Inputs/instrprof-dlopen-func3.c.gcov<br class="">
                              +RUN: rm
                              instrprof-dlopen-dlclose-main.gcda
                              instrprof-dlopen-func.gcda
                              instrprof-dlopen-func2.gcda
                              instrprof-dlopen-func3.gcda<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/instrprof-gcov-two-objects.test
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,18 @@<br class="">
                              +RUN: mkdir -p %t.d<br class="">
                              +RUN: cd %t.d<br class="">
                              +<br class="">
                              +RUN: %clang --coverage -o
                              instrprof-shared-lib.o -c
                              %S/Inputs/instrprof-shared-lib.c<br class="">
                              +RUN: test -f instrprof-shared-lib.gcno<br class="">
                              +<br class="">
                              +RUN: %clang --coverage -o
                              instrprof-shared-main.o -c
                              %S/Inputs/instrprof-shared-main.c<br class="">
                              +RUN: test -f instrprof-shared-main.gcno<br class="">
                              +<br class="">
                              +RUN: %clang --coverage -o %t
                              instrprof-shared-main.o
                              instrprof-shared-lib.o<br class="">
                              +RUN: test -f %t<br class="">
                              +<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-main.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-main.c.gcov
                              %S/Inputs/instrprof-shared-main.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-lib.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-lib.c.gcov
                              %S/Inputs/instrprof-shared-lib_in-loop.c.gcov<br class="">
                              +RUN: rm instrprof-shared-main.gcda
                              instrprof-shared-lib.gcda<br class="">
                              <br class="">
                              Added:
                              compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test<br class="">
                              URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test?rev=336365&view=auto" moz-do-not-send="true" target="_blank" class="">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test?rev=336365&view=auto</a><br class="">
==============================================================================<br class="">
                              ---
                              compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test
                              (added)<br class="">
                              +++
                              compiler-rt/trunk/test/profile/instrprof-shared-gcov-flush.test
                              Thu Jul  5 08:52:59 2018<br class="">
                              @@ -0,0 +1,49 @@<br class="">
                              +RUN: mkdir -p %t.d<br class="">
                              +RUN: cd %t.d<br class="">
                              +<br class="">
                              +RUN: %clang --coverage -o libfunc.so
                              -fPIC -shared
                              %S/Inputs/instrprof-shared-lib.c<br class="">
                              +RUN: test -f instrprof-shared-lib.gcno<br class="">
                              +<br class="">
                              +# Test the case where we exit abruptly
                              after calling __gcov_flush, which means we
                              don't write out the counters at exit.<br class="">
                              +RUN: %clang -DEXIT_ABRUPTLY
                              -DSHARED_CALL_BEFORE_GCOV_FLUSH
                              -DSHARED_CALL_AFTER_GCOV_FLUSH --coverage
                              -o %t -L%t.d -rpath %t.d -lfunc
                              %S/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +RUN: test -f
                              instrprof-shared-main-gcov-flush.gcno<br class="">
                              +<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-main-gcov-flush.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-main-gcov-flush.c.gcov
                              %S/Inputs/instrprof-shared-main-gcov-flush_no-writeout.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-lib.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-lib.c.gcov
                              %S/Inputs/instrprof-shared-lib.c.gcov<br class="">
                              +RUN: rm
                              instrprof-shared-main-gcov-flush.gcda
                              instrprof-shared-lib.gcda<br class="">
                              +<br class="">
                              +# Test the case where we exit normally
                              and we have a call to the shared library
                              function before __gcov_flush.<br class="">
                              +RUN: %clang
                              -DSHARED_CALL_BEFORE_GCOV_FLUSH --coverage
                              -o %t -L%t.d -rpath %t.d -lfunc
                              %S/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +RUN: test -f
                              instrprof-shared-main-gcov-flush.gcno<br class="">
                              +<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-main-gcov-flush.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-main-gcov-flush.c.gcov
                              %S/Inputs/instrprof-shared-main-gcov-flush_shared-call-before.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-lib.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-lib.c.gcov
                              %S/Inputs/instrprof-shared-lib.c.gcov<br class="">
                              +RUN: rm
                              instrprof-shared-main-gcov-flush.gcda
                              instrprof-shared-lib.gcda<br class="">
                              +<br class="">
                              +# Test the case where we exit normally
                              and we have a call to the shared library
                              function after __gcov_flush.<br class="">
                              +RUN: %clang
                              -DSHARED_CALL_AFTER_GCOV_FLUSH --coverage
                              -o %t -L%t.d -rpath %t.d -lfunc
                              %S/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +RUN: test -f
                              instrprof-shared-main-gcov-flush.gcno<br class="">
                              +<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-main-gcov-flush.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-main-gcov-flush.c.gcov
                              %S/Inputs/instrprof-shared-main-gcov-flush_shared-call-after.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-lib.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-lib.c.gcov
                              %S/Inputs/instrprof-shared-lib.c.gcov<br class="">
                              +RUN: rm
                              instrprof-shared-main-gcov-flush.gcda
                              instrprof-shared-lib.gcda<br class="">
                              +<br class="">
                              +# Test the case where we exit normally
                              and we have calls to the shared library
                              function before and after __gcov_flush.<br class="">
                              +RUN: %clang
                              -DSHARED_CALL_BEFORE_GCOV_FLUSH
                              -DSHARED_CALL_AFTER_GCOV_FLUSH --coverage
                              -o %t -L%t.d -rpath %t.d -lfunc
                              %S/Inputs/instrprof-shared-main-gcov-flush.c<br class="">
                              +RUN: test -f
                              instrprof-shared-main-gcov-flush.gcno<br class="">
                              +<br class="">
                              +RUN: %run %t<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-main-gcov-flush.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-main-gcov-flush.c.gcov
%S/Inputs/instrprof-shared-main-gcov-flush_shared-call-before-after.c.gcov<br class="">
                              +RUN: llvm-cov gcov
                              instrprof-shared-lib.gcda<br class="">
                              +RUN: FileCheck --match-full-lines
                              --strict-whitespace --input-file
                              instrprof-shared-lib.c.gcov
                              %S/Inputs/instrprof-shared-lib_called-twice.c.gcov<br class="">
                              +RUN: rm
                              instrprof-shared-main-gcov-flush.gcda
                              instrprof-shared-lib.gcda<br class="">
                              <br class="">
                              <br class="">
_______________________________________________<br class="">
                              llvm-commits mailing list<br class="">
                              <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" moz-do-not-send="true" class="">llvm-commits@lists.llvm.org</a><br class="">
                              <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" moz-do-not-send="true" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></font><br class="">
                             </div>
                        </blockquote>
                        <div dir="ltr" class=""> </div>
                      </div>
                    </blockquote>
                  </div>
                  _______________________________________________<br class="">
                  llvm-commits mailing list<br class="">
                  <a href="mailto:llvm-commits@lists.llvm.org" target="_blank" moz-do-not-send="true" class="">llvm-commits@lists.llvm.org</a><br class="">
                  <span class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" target="_blank" moz-do-not-send="true" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a></span></div>
              </blockquote>
            </div>
          </div>
        </blockquote>
        <div dir="ltr" class=""> </div>
      </div>
      <br class="">
    </blockquote>
    <br class="">
  </div>

</div></blockquote></div><br class=""></div></body></html>