Leave symbol pseudo usage intact when doing phi-node conversion.
[smatch.git] / compat-mingw.c
blob1941c0b087eb6e4de7c023f2124d91d8a5fe146d
1 /*
2 * Mingw Compatibility functions
3 *
4 *
5 * Licensed under the Open Software License version 1.1
6 */
10 #include <stdarg.h>
11 #include <windef.h>
12 #include <winbase.h>
13 #include <stdlib.h>
14 #include <string.h>
16 #include "lib.h"
17 #include "token.h"
19 void *blob_alloc(unsigned long size)
21 void *ptr;
22 ptr = malloc(size);
23 if (ptr != NULL)
24 memset(ptr, 0, size);
25 return ptr;
28 void blob_free(void *addr, unsigned long size)
30 free(addr);
33 long double string_to_ld(const char *nptr, char **endptr)
35 return strtod(nptr, endptr);
38 int identical_files(struct stream* s, struct stat *st, const char * name)
40 HANDLE file1 =CreateFile(s->name,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
41 if(file1==INVALID_HANDLE_VALUE)
42 return 0;
43 HANDLE file2=CreateFile(name,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
44 if(file2==INVALID_HANDLE_VALUE) {
45 CloseHandle(file1);
46 return 0;
48 BY_HANDLE_FILE_INFORMATION info1;
49 BY_HANDLE_FILE_INFORMATION info2;
50 int same=0;
51 if(GetFileInformationByHandle(file1,&info1) && GetFileInformationByHandle(file2,&info2)){
52 if(info1.nFileIndexLow==info2.nFileIndexLow &&
53 info1.nFileIndexHigh==info2.nFileIndexHigh &&
54 info1.dwVolumeSerialNumber==info2.dwVolumeSerialNumber)
55 same=1;
57 CloseHandle(file1);
58 CloseHandle(file2);
59 return same;