Skip to content

Commit 9a5efb1

Browse files
committed
Avoid double underscore in macros
Identifiers with double underscores are reserved, and using them is undefined behaviour. Similarly, identifiers using a single underscore followed by an uppercase letters are also reserved. See more at https://en.cppreference.com/w/cpp/language/identifiers This change is for code defined from macros in Gecode, suich as GECODE_ME_CHECK. Additional fix for issue #63
1 parent 7af5307 commit 9a5efb1

File tree

3 files changed

+28
-28
lines changed

3 files changed

+28
-28
lines changed

gecode/kernel/macros.hpp

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
*/
4040
#define GECODE_POST \
4141
if (home.failed()) return; \
42-
::Gecode::PostInfo __gecode__pi(home);
42+
::Gecode::PostInfo gecode_pi_(home);
4343

4444

4545
/**
@@ -61,11 +61,11 @@
6161
* or the commit member function of a brancher.
6262
* \ingroup TaskActor
6363
*/
64-
#define GECODE_ME_CHECK_MODIFIED(modified, me) do { \
65-
::Gecode::ModEvent __me__ ## __LINE__ = (me); \
66-
if (::Gecode::me_failed(__me__ ## __LINE__)) \
67-
return ::Gecode::ES_FAILED; \
68-
modified |= ::Gecode::me_modified(__me__ ## __LINE__); \
64+
#define GECODE_ME_CHECK_MODIFIED(modified, me) do { \
65+
::Gecode::ModEvent gecode_me_ ## __LINE__ = (me); \
66+
if (::Gecode::me_failed(gecode_me_ ## __LINE__)) \
67+
return ::Gecode::ES_FAILED; \
68+
modified |= ::Gecode::me_modified(gecode_me_ ## __LINE__); \
6969
} while (0)
7070

7171
/**
@@ -74,10 +74,10 @@
7474
* To be used inside post functions.
7575
* \ingroup TaskActor
7676
*/
77-
#define GECODE_ME_FAIL(me) do { \
78-
if (::Gecode::me_failed(me)) { \
79-
(home).fail(); \
80-
return; \
77+
#define GECODE_ME_FAIL(me) do { \
78+
if (::Gecode::me_failed(me)) { \
79+
(home).fail(); \
80+
return; \
8181
}} while (0)
8282

8383

@@ -89,9 +89,9 @@
8989
* \ingroup TaskActor
9090
*/
9191
#define GECODE_ES_CHECK(es) do { \
92-
::Gecode::ExecStatus __es__ ## __LINE__ = (es); \
93-
if (__es__ ## __LINE__ < ::Gecode::ES_OK) \
94-
return __es__ ## __LINE__; \
92+
::Gecode::ExecStatus gecode_es_ ## __LINE__ = (es); \
93+
if (gecode_es_ ## __LINE__ < ::Gecode::ES_OK) \
94+
return gecode_es_ ## __LINE__; \
9595
} while (0)
9696

9797
/**
@@ -101,9 +101,9 @@
101101
* \ingroup TaskActor
102102
*/
103103
#define GECODE_ES_FAIL(es) do { \
104-
::Gecode::ExecStatus __es__ ## __LINE__ = (es); \
105-
assert(__es__ ## __LINE__ != ::Gecode::__ES_SUBSUMED); \
106-
if (__es__ ## __LINE__ < ::Gecode::ES_OK) { \
104+
::Gecode::ExecStatus gecode_es_ ## __LINE__ = (es); \
105+
assert(gecode_es_ ## __LINE__ != ::Gecode::ES_SUBSUMED_); \
106+
if (gecode_es_ ## __LINE__ < ::Gecode::ES_OK) { \
107107
(home).fail(); return; \
108108
} \
109109
} while (0)
@@ -113,13 +113,13 @@
113113
*
114114
* \ingroup TaskActor
115115
*/
116-
#define GECODE_REWRITE(prop,post) do { \
117-
::Gecode::Propagator& __p__ ## __LINE__ = (prop); \
118-
size_t __s__ ## __LINE__ = __p__ ## __LINE__.dispose(home); \
119-
::Gecode::ExecStatus __es__ ## __LINE__ = (post); \
120-
if (__es__ ## __LINE__ != ::Gecode::ES_OK) \
121-
return ::Gecode::ES_FAILED; \
122-
return home.ES_SUBSUMED_DISPOSED(__p__ ## __LINE__,__s__ ## __LINE__); \
116+
#define GECODE_REWRITE(prop,post) do { \
117+
::Gecode::Propagator& gecode_p_ ## __LINE__ = (prop); \
118+
size_t gecode_s_ ## __LINE__ = gecode_p_ ## __LINE__.dispose(home); \
119+
::Gecode::ExecStatus gecode_es_ ## __LINE__ = (post); \
120+
if (gecode_es_ ## __LINE__ != ::Gecode::ES_OK) \
121+
return ::Gecode::ES_FAILED; \
122+
return home.ES_SUBSUMED_DISPOSED(gecode_p_ ## __LINE__, gecode_s_ ## __LINE__); \
123123
} while (0)
124124

125125
// STATISTICS: kernel-other

gecode/set/rel/common.hpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@
3838
*/
3939

4040
#define GECODE_SET_ME_CHECK_VAL(p,f) { \
41-
ModEvent _me_ ## __LINE__ = (p); \
42-
if (me_failed(_me_ ## __LINE__)) return ES_FAILED; \
43-
if (ME_GEN_ASSIGNED==(_me_ ## __LINE__))f=true; }
41+
ModEvent gecode_me_ ## __LINE__ = (p); \
42+
if (me_failed(gecode_me_ ## __LINE__)) return ES_FAILED; \
43+
if (ME_GEN_ASSIGNED==(gecode_me_ ## __LINE__))f=true; }
4444

4545
#define GECODE_SET_ME_CHECK_VAL_B(modified, tell, f) \
4646
{ \
4747
ModEvent me = (tell); \
4848
modified |= me_modified(me); \
49-
if (ME_GEN_ASSIGNED==(me))f=true; \
49+
if (ME_GEN_ASSIGNED==(me)) f=true; \
5050
GECODE_ME_CHECK(me); \
5151
}
5252

gecode/support/macros.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
/// Concatenate macro-expanded \a R and \a LINE
3737
#define GECODE_CAT(R,LINE) GECODE_CAT2(R,LINE)
3838
/// Generate fresh name with prefix P
39-
#define GECODE_FRESH(P) GECODE_CAT(_GECODE_ ## P, __LINE__)
39+
#define GECODE_FRESH(P) GECODE_CAT(GECODE_ ## P, __LINE__)
4040

4141
/**
4242
* \def GECODE_NEVER

0 commit comments

Comments
 (0)