forked from OSchip/llvm-project
[Profile] introduce reusable internal interfaces to find dir separator \NFC
llvm-svn: 276027
This commit is contained in:
parent
3b059841ff
commit
b6d43b7994
|
@ -229,11 +229,7 @@ static void truncateCurrentFile(void) {
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Create the directory holding the file, if needed. */
|
/* Create the directory holding the file, if needed. */
|
||||||
if (strchr(Filename, DIR_SEPARATOR)
|
if (lprofFindFirstDirSeparator(Filename)) {
|
||||||
#if defined(DIR_SEPARATOR_2)
|
|
||||||
|| strchr(Filename, DIR_SEPARATOR_2)
|
|
||||||
#endif
|
|
||||||
) {
|
|
||||||
char *Copy = (char *)COMPILER_RT_ALLOCA(Length + 1);
|
char *Copy = (char *)COMPILER_RT_ALLOCA(Length + 1);
|
||||||
strncpy(Copy, Filename, Length + 1);
|
strncpy(Copy, Filename, Length + 1);
|
||||||
__llvm_profile_recursive_mkdir(Copy);
|
__llvm_profile_recursive_mkdir(Copy);
|
||||||
|
|
|
@ -184,3 +184,26 @@ lprofApplyPathPrefix(char *Dest, const char *PathStr, const char *Prefix,
|
||||||
|
|
||||||
memcpy(Dest + PrefixLen, StrippedPathStr, strlen(StrippedPathStr) + 1);
|
memcpy(Dest + PrefixLen, StrippedPathStr, strlen(StrippedPathStr) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
COMPILER_RT_VISIBILITY const char *
|
||||||
|
lprofFindFirstDirSeparator(const char *Path) {
|
||||||
|
const char *Sep;
|
||||||
|
Sep = strchr(Path, DIR_SEPARATOR);
|
||||||
|
if (Sep)
|
||||||
|
return Sep;
|
||||||
|
#if defined(DIR_SEPARATOR_2)
|
||||||
|
Sep = strchr(Path, DIR_SEPARATOR_2);
|
||||||
|
#endif
|
||||||
|
return Sep;
|
||||||
|
}
|
||||||
|
|
||||||
|
COMPILER_RT_VISIBILITY const char *lprofFindLastDirSeparator(const char *Path) {
|
||||||
|
const char *Sep;
|
||||||
|
Sep = strrchr(Path, DIR_SEPARATOR);
|
||||||
|
if (Sep)
|
||||||
|
return Sep;
|
||||||
|
#if defined(DIR_SEPARATOR_2)
|
||||||
|
Sep = strrchr(Path, DIR_SEPARATOR_2);
|
||||||
|
#endif
|
||||||
|
return Sep;
|
||||||
|
}
|
||||||
|
|
|
@ -39,6 +39,13 @@ const char *lprofGetPathPrefix(int *PrefixStrip, size_t *PrefixLen);
|
||||||
void lprofApplyPathPrefix(char *Dest, const char *PathStr, const char *Prefix,
|
void lprofApplyPathPrefix(char *Dest, const char *PathStr, const char *Prefix,
|
||||||
size_t PrefixLen, int PrefixStrip);
|
size_t PrefixLen, int PrefixStrip);
|
||||||
|
|
||||||
|
/* Returns a pointer to the first occurrence of \c DIR_SEPARATOR char in
|
||||||
|
* the string \c Path, or NULL if the char is not found. */
|
||||||
|
const char *lprofFindFirstDirSeparator(const char *Path);
|
||||||
|
/* Returns a pointer to the last occurrence of \c DIR_SEPARATOR char in
|
||||||
|
* the string \c Path, or NULL if the char is not found. */
|
||||||
|
const char *lprofFindLastDirSeparator(const char *Path);
|
||||||
|
|
||||||
int lprofGetHostName(char *Name, int Len);
|
int lprofGetHostName(char *Name, int Len);
|
||||||
|
|
||||||
unsigned lprofBoolCmpXchg(void **Ptr, void *OldV, void *NewV);
|
unsigned lprofBoolCmpXchg(void **Ptr, void *OldV, void *NewV);
|
||||||
|
|
Loading…
Reference in New Issue