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

Nick Lewycky nicholas at mxc.ca
Wed May 25 22:12:29 PDT 2011


Francois Pichet wrote:
> On Thu, May 26, 2011 at 12:41 AM, Nick Lewycky<nicholas at mxc.ca>  wrote:
>> 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
>>
>
>   'mkdir' undefined; assuming extern returning int
> Fixed in r132109.
>
> I don't care that this won't work on Windows, I am just trying to
> reduce the warning count.

Great!! Thanks for committing a fix!

Nick





More information about the llvm-commits mailing list