diff options
author | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-02-26 03:08:06 +0000 |
---|---|---|
committer | eschnett <eschnett@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2013-02-26 03:08:06 +0000 |
commit | 6876767592de3e96dfe5aa24489906c1cd3b406b (patch) | |
tree | ae92b4b8027b7f34439dda98c0150bc314104964 /src/include | |
parent | 3f9e2a8886b5ad2534971f4fe0a9438de857c9cc (diff) |
Implement CCTK_Error and friends
git-svn-id: http://svn.cactuscode.org/flesh/trunk@4963 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/CommOverloadables.h | 10 | ||||
-rw-r--r-- | src/include/IOOverloadables.h | 6 | ||||
-rw-r--r-- | src/include/MainOverloadables.h | 6 | ||||
-rw-r--r-- | src/include/OverloadMacros.h | 4 | ||||
-rw-r--r-- | src/include/cctk_WarnLevel.h | 30 | ||||
-rw-r--r-- | src/include/cctk_core.h | 9 |
6 files changed, 44 insertions, 21 deletions
diff --git a/src/include/CommOverloadables.h b/src/include/CommOverloadables.h index 361d166f..9f95c1dd 100644 --- a/src/include/CommOverloadables.h +++ b/src/include/CommOverloadables.h @@ -40,9 +40,14 @@ #undef RETURN_TYPE #endif +#ifdef ATTRIBUTES +#undef ATTRIBUTES +#endif + #define RETURN_TYPE int #define ARGUMENTS const cGH *GH, const char *group #define USE_ARGUMENTS GH = GH; group = group; +#define ATTRIBUTES OVERLOADABLE(SyncGroup) OVERLOADABLE(EnableGroupStorage) @@ -77,6 +82,8 @@ OVERLOADABLE(ParallelInit) #define USE_ARGUMENTS GH = GH; retval = retval; #undef RETURN_TYPE #define RETURN_TYPE int +#undef ATTRIBUTES +#define ATTRIBUTES CCTK_ATTRIBUTE_NORETURN OVERLOADABLE(Exit) OVERLOADABLE(Abort) @@ -86,6 +93,8 @@ OVERLOADABLE(Abort) #define USE_ARGUMENTS config = config; convergence_level = convergence_level; #undef RETURN_TYPE #define RETURN_TYPE cGH * +#undef ATTRIBUTES +#define ATTRIBUTES OVERLOADABLE(SetupGH) #undef ARGUMENTS @@ -159,6 +168,7 @@ OVERLOADABLE(InterpGridArrays) #undef ARGUMENTS #undef USE_ARGUMENTS #undef RETURN_TYPE +#undef ATTRIBUTES #undef OVERLOADABLE_CALL #undef OVERLOADABLE_PREFIX diff --git a/src/include/IOOverloadables.h b/src/include/IOOverloadables.h index 2b0a50de..030a8c21 100644 --- a/src/include/IOOverloadables.h +++ b/src/include/IOOverloadables.h @@ -37,9 +37,14 @@ #undef RETURN_TYPE #endif +#ifdef ATTRIBUTES +#undef ATTRIBUTES +#endif + #define ARGUMENTS const cGH *GH #define USE_ARGUMENTS GH = GH; #define RETURN_TYPE int +#define ATTRIBUTES OVERLOADABLE(OutputGH) #undef ARGUMENTS @@ -54,6 +59,7 @@ OVERLOADABLE(OutputVarAsByMethod) #undef ARGUMENTS #undef USE_ARGUMENTS #undef RETURN_TYPE +#undef ATTRIBUTES #undef OVERLOADABLE_CALL #undef OVERLOADABLE_PREFIX diff --git a/src/include/MainOverloadables.h b/src/include/MainOverloadables.h index f112ece0..fef0307d 100644 --- a/src/include/MainOverloadables.h +++ b/src/include/MainOverloadables.h @@ -38,9 +38,14 @@ #undef RETURN_TYPE #endif +#ifdef ATTRIBUTES +#undef ATTRIBUTES +#endif + #define ARGUMENTS tFleshConfig *config #define USE_ARGUMENTS config = config #define RETURN_TYPE int +#define ATTRIBUTES OVERLOADABLE(Initialise) OVERLOADABLE(Evolve) @@ -67,6 +72,7 @@ OVERLOADABLE(SetMainLoopIndex) #undef ARGUMENTS #undef USE_ARGUMENTS #undef RETURN_TYPE +#undef ATTRIBUTES #undef OVERLOADABLE_CALL #undef OVERLOADABLE_PREFIX diff --git a/src/include/OverloadMacros.h b/src/include/OverloadMacros.h index 973c94c3..e967bb79 100644 --- a/src/include/OverloadMacros.h +++ b/src/include/OverloadMacros.h @@ -77,7 +77,7 @@ int call##Overload##name(RETURN_TYPE (*func)(ARGUMENTS)) \ #define _OVERLOADABLE_PROTOTYPE(prefix, dummy_prefix, name) __OVERLOADABLE_PROTOTYPE(prefix, dummy_prefix, name) #define __OVERLOADABLE_PROTOTYPE(prefix, dummy_prefix, name) \ -extern RETURN_TYPE (*prefix##name)(ARGUMENTS); +extern RETURN_TYPE (*prefix##name)(ARGUMENTS) ATTRIBUTES; /* This macro defines a dummy function */ #define OVERLOADABLE_DUMMY(name) _OVERLOADABLE_DUMMY(OVERLOADABLE_PREFIX, OVERLOADABLE_DUMMY_PREFIX, name) @@ -97,7 +97,7 @@ RETURN_TYPE dummy_prefix##name(ARGUMENTS) \ #define _OVERLOADABLE_DUMMYPROTOTYPE(prefix, dummy_prefix, name) __OVERLOADABLE_DUMMYPROTOTYPE(prefix, dummy_prefix, name) #define __OVERLOADABLE_DUMMYPROTOTYPE(prefix, dummy_prefix, name) \ -RETURN_TYPE dummy_prefix##name(ARGUMENTS); +RETURN_TYPE dummy_prefix##name(ARGUMENTS) ATTRIBUTES; /* This macro initialises the function to the dummy if it diff --git a/src/include/cctk_WarnLevel.h b/src/include/cctk_WarnLevel.h index fed8bbad..a2a7b531 100644 --- a/src/include/cctk_WarnLevel.h +++ b/src/include/cctk_WarnLevel.h @@ -11,6 +11,8 @@ #ifndef _CCTK_WARNLEVEL_H_ #define _CCTK_WARNLEVEL_H_ +#include <cctk_Config.h> + #ifdef CCODE #ifdef __cplusplus @@ -28,24 +30,28 @@ int CCTK_VWarn(int level, const char *file, const char *thorn, const char *format, ...) -#ifdef __GNUC__ -__attribute__ ((format (printf, 5, 6))) -#endif -; + CCTK_ATTRIBUTE_FORMAT(printf, 5, 6); + +void CCTK_Error(int line, + const char *file, + const char *thorn, + const char *message) + CCTK_ATTRIBUTE_NORETURN; + +void CCTK_VError(int line, + const char *file, + const char *thorn, + const char *format, ...) + CCTK_ATTRIBUTE_FORMAT(printf, 4, 5) + CCTK_ATTRIBUTE_NORETURN; int CCTK_VParamWarn (const char *thorn, const char *format, ...) -#ifdef __GNUC__ -__attribute__ ((format (printf, 2, 3))) -#endif -; + CCTK_ATTRIBUTE_FORMAT(printf, 2, 3); int CCTK_ParamWarn(const char *thorn, const char *message); int CCTK_Info(const char *thorn, const char *message); int CCTK_VInfo(const char *thorn, const char *format, ...) -#ifdef __GNUC__ -__attribute__ ((format (printf, 2, 3))) -#endif -; + CCTK_ATTRIBUTE_FORMAT(printf, 2, 3); /* prototypes for warn/info callback routines */ diff --git a/src/include/cctk_core.h b/src/include/cctk_core.h index cebc6c96..1878b4e8 100644 --- a/src/include/cctk_core.h +++ b/src/include/cctk_core.h @@ -66,6 +66,7 @@ cctk_ash1,cctk_ash2,cctk_ash3 CCTK_DECLARE(INTEGER,cctk_ash3,)&& #define CCTK_WARN(a,b) CCTK_Warn(a,__LINE__,__FORTRANFILE__,CCTK_THORNSTRING,b) +#define CCTK_ERROR(b) CCTK_Error(__LINE__,__FORTRANFILE__,CCTK_THORNSTRING,b) #define CCTK_CoordRegisterSystem(a,b,c) CCTKi_CoordRegisterSystem(a,b,CCTK_THORNSTRING,c) @@ -346,6 +347,7 @@ static inline int CCTK_VECTGFINDEX4D (const cGH *restrict cctkGH, #define CCTK_DELTA_TIME (cctk_delta_time/cctk_timefac) #define CCTK_WARN(a,b) CCTK_Warn(a,__LINE__,__FILE__,CCTK_THORNSTRING,b) +#define CCTK_ERROR(b) CCTK_Error(__LINE__,__FILE__,CCTK_THORNSTRING,b) #define CCTK_MALLOC(s) CCTKi_Malloc(s,__LINE__,__FILE__) #define CCTK_FREE(p) CCTKi_Free(p) @@ -355,11 +357,4 @@ static inline int CCTK_VECTGFINDEX4D (const cGH *restrict cctkGH, #define CCTK_INFO(a) CCTK_Info(CCTK_THORNSTRING,(a)) #define CCTK_PARAMWARN(a) CCTK_ParamWarn(CCTK_THORNSTRING,(a)) -/* -#define CCTK_MAKESTRING(x) CCTK_REALSTRING(x) -#define CCTK_REALSTRING(x) #x -#define CCTK_WARN(a,b) CCTK_Warn(a,CCTK_MAKESTRING(CCTK_THORN),b,__LINE__,__FILE__) -*/ - - #endif |