I had the same problem, with the Intel compiler getting confused by the declarations in the gcc header <mm_malloc.h>, but in my case that header was getting dragged in by a library header I didn't want to change.
What worked for me was to globally disable mm_malloc.h by triggering its own include guard with a #define, like:
icc -D_MM_MALLOC_H_INCLUDED=1 main.cpp -o main
You could also disable it in a single file or header using the same #define:
#ifdef __INTEL_COMPILER
# define _MM_MALLOC_H_INCLUDED 1 /* disables gcc's <mm_malloc.h>, for Intel */
#endif
The Intel compiler picks up its own definitions of mm_malloc from xmmintrin (or the other SSE/AVX headers), so this works even if somebody's calling mm_malloc.