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
compiler-rt/lib/profile
|
@ -229,11 +229,7 @@ static void truncateCurrentFile(void) {
|
|||
return;
|
||||
|
||||
/* Create the directory holding the file, if needed. */
|
||||
if (strchr(Filename, DIR_SEPARATOR)
|
||||
#if defined(DIR_SEPARATOR_2)
|
||||
|| strchr(Filename, DIR_SEPARATOR_2)
|
||||
#endif
|
||||
) {
|
||||
if (lprofFindFirstDirSeparator(Filename)) {
|
||||
char *Copy = (char *)COMPILER_RT_ALLOCA(Length + 1);
|
||||
strncpy(Copy, Filename, Length + 1);
|
||||
__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);
|
||||
}
|
||||
|
||||
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,
|
||||
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);
|
||||
|
||||
unsigned lprofBoolCmpXchg(void **Ptr, void *OldV, void *NewV);
|
||||
|
|
Loading…
Reference in New Issue