Unbreak the MSVC build:

- unistd.h doesn't exist with MSVC
  - inline must be __inline in Microsoft C
  - atexit cannot take a function declared as void f(), must be void f(void).

llvm-svn: 130490
This commit is contained in:
Francois Pichet 2011-04-29 08:56:07 +00:00
parent f0e3f04470
commit dbad1d1599
2 changed files with 15 additions and 3 deletions

View File

@ -19,7 +19,11 @@
#include <fcntl.h> #include <fcntl.h>
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h> #include <unistd.h>
#else
#include <io.h>
#endif
#include <stdlib.h> #include <stdlib.h>
static char *SavedArgs = 0; static char *SavedArgs = 0;

View File

@ -16,13 +16,21 @@
#include "Profiling.h" #include "Profiling.h"
#include "llvm/Analysis/ProfileInfoTypes.h" #include "llvm/Analysis/ProfileInfoTypes.h"
#include <sys/types.h> #include <sys/types.h>
#if !defined(_MSC_VER) && !defined(__MINGW32__)
#include <unistd.h> #include <unistd.h>
#else
#include <io.h>
#endif
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h>
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
// Must use __inline in Microsoft C
#if defined(_MSC_VER)
#define inline __inline
#endif
/* note that this is used for functions with large path counts, /* note that this is used for functions with large path counts,
but it is unlikely those paths will ALL be executed */ but it is unlikely those paths will ALL be executed */
#define ARBITRARY_HASH_BIN_COUNT 100 #define ARBITRARY_HASH_BIN_COUNT 100
@ -215,7 +223,7 @@ void llvm_decrement_path_count (uint32_t functionNumber, uint32_t pathNumber) {
* +-----------------+-----------------+ * +-----------------+-----------------+
* *
*/ */
static void pathProfAtExitHandler() { static void pathProfAtExitHandler(void) {
int outFile = getOutFile(); int outFile = getOutFile();
uint32_t i; uint32_t i;
uint32_t header[2] = { PathInfo, 0 }; uint32_t header[2] = { PathInfo, 0 };