///////////////////////////////////////////////////////////////////////////////
//
// File   : Compiler.h
// Author : Kevin Floyer-Lea
// Date   : 20-Jun-2005
//
// Copyright (C) 2005 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

#ifdef ASURA_USE_PRAGMA_ONCE
	#pragma once
#endif   // ifdef ASURA_USE_PRAGMA_ONCE

#ifndef __COMPILER_H__
#define __COMPILER_H__

/******************************************************************************/
/* Macros                                                                     */
/******************************************************************************/

// (MP - 12.04.2002) For use with debugging variables that are only used in
// a single file; the compiler should be able to optimise them out in release
// builds.
#ifdef NDEBUG
	#define DEBUGVAR static const
#else
	#define DEBUGVAR static
#endif

#ifdef ASURA_DEBUG_VARIABLE_SYSTEM
#define DVSVAR static
#else
#define DVSVAR static const
#endif

#define ASURA_CODE_SECTION( name )

#define ASURA_USE_PLATFORM_VECTORS (1)	

// Platform endianness...
#define ASURA_PLATFORM_IS_BIG_ENDIAN (1)

/******************************************************************************/
/* Typedefs
/******************************************************************************/
typedef	unsigned __int64 uint64;
typedef	__int64 int64;


/******************************************************************************/
/* Compiler warnings                                                          */
/******************************************************************************/

// switch statement contains 'default' but no 'case' labels
#pragma warning( disable: 4065 )

// unreferenced formal parameter
#pragma warning( disable: 4100 )

// conditional expression is constant
#pragma warning( disable: 4127 )

// nonstandard extension used : nameless struct/union
#pragma warning( disable: 4201 )

// 'class1' : inherits 'class2::member' via dominance
#pragma warning( disable: 4250 )

// new behavior: elements of array 'array' will be default initialized
#pragma warning( disable: 4351 )

// assignment operator could not be generated
#pragma warning( disable: 4512 )

#endif // ifndef __COMPILER_H__
