[llvm-commits] [llvm] r130879 - /llvm/trunk/runtime/libprofile/GCDAProfiling.c

Nick Lewycky nicholas at mxc.ca
Wed May 25 21:41:51 PDT 2011


Francois Pichet wrote:
> On Wed, May 4, 2011 at 6:34 PM, Nick Lewycky<nicholas at mxc.ca>  wrote:
>> Author: nicholas
>> Date: Wed May  4 17:34:29 2011
>> New Revision: 130879
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=130879&view=rev
>> Log:
>> Create the parent directories to place the .gcda files in if they don't exist.
>> That's kinda weird because the .gcno files are supposed to already be there,
>> but libgcov does this and somehow Google has managed to depend on it.
>>
>> Modified:
>>     llvm/trunk/runtime/libprofile/GCDAProfiling.c
>>
>> Modified: llvm/trunk/runtime/libprofile/GCDAProfiling.c
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/runtime/libprofile/GCDAProfiling.c?rev=130879&r1=130878&r2=130879&view=diff
>> ==============================================================================
>> --- llvm/trunk/runtime/libprofile/GCDAProfiling.c (original)
>> +++ llvm/trunk/runtime/libprofile/GCDAProfiling.c Wed May  4 17:34:29 2011
>> @@ -24,6 +24,8 @@
>>   #include<stdio.h>
>>   #include<stdlib.h>
>>   #include<string.h>
>> +#include<sys/stat.h>
>> +#include<sys/types.h>
>>
>>   /* #define DEBUG_GCDAPROFILING */
>>
>> @@ -64,6 +66,21 @@
>>    return filename;
>>   }
>>
>> +static void recursive_mkdir(const char *filename) {
>> +  char *pathname;
>> +  int i, e;
>> +
>> +  for (i = 1, e = strlen(filename); i != e; ++i) {
>> +    if (filename[i] == '/') {
>> +      pathname = malloc(i + 1);
>> +      strncpy(pathname, filename, i);
>> +      pathname[i] = '\0';
>> +      mkdir(pathname, 0750);  /* some of these will fail, ignore it. */
>> +      free(pathname);
>> +    }
>> +  }
>> +}
>
> Hi Nick, recursive_mkdir won't work on Windows and it is causing a
> warning. Could you use Path::createDirectoryOnDisk instead?

No, none of this code links against llvm. It's a runtime. What's the 
warning?

I'm aware that it won't work on Windows, but I don't think there's much 
I can do about it ...

Nick



More information about the llvm-commits mailing list