summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorOlly Betts <olly@survex.com>2021-09-20 15:04:51 +1200
committerOlly Betts <olly@survex.com>2021-09-20 15:04:51 +1200
commit561a1d843d5877ec06265a6dbc96eefef5d0a945 (patch)
treeb1e753c484f6045c7804e982a1fdf0aa52445dc1 /Source
parent45ebd33698e79c7b0bfb9448b1cbb13f1a425a80 (diff)
downloadswig-561a1d843d5877ec06265a6dbc96eefef5d0a945.tar.gz
Fix ODR violations
Detected by compiling with GCC flags `-flto -Wodr`.
Diffstat (limited to 'Source')
-rw-r--r--Source/Modules/overload.cxx2
-rw-r--r--Source/Modules/python.cxx3
-rw-r--r--Source/Modules/r.cxx3
-rw-r--r--Source/Modules/ruby.cxx2
4 files changed, 8 insertions, 2 deletions
diff --git a/Source/Modules/overload.cxx b/Source/Modules/overload.cxx
index 512c5da39..8a4ce48f7 100644
--- a/Source/Modules/overload.cxx
+++ b/Source/Modules/overload.cxx
@@ -21,6 +21,7 @@
String *argv_template_string;
String *argc_template_string;
+namespace {
struct Overloaded {
Node *n; /* Node */
int argc; /* Argument count */
@@ -28,6 +29,7 @@ struct Overloaded {
int error; /* Ambiguity error */
bool implicitconv_function; /* For ordering implicitconv functions*/
};
+}
static int fast_dispatch_mode = 0;
static int cast_dispatch_mode = 0;
diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx
index 6bc7ef737..7d618635e 100644
--- a/Source/Modules/python.cxx
+++ b/Source/Modules/python.cxx
@@ -93,6 +93,7 @@ static int nortti = 0;
static int relativeimport = 0;
/* flags for the make_autodoc function */
+namespace {
enum autodoc_t {
AUTODOC_CLASS,
AUTODOC_CTOR,
@@ -103,7 +104,7 @@ enum autodoc_t {
AUTODOC_CONST,
AUTODOC_VAR
};
-
+}
static const char *usage1 = "\
Python Options (available with -python)\n\
diff --git a/Source/Modules/r.cxx b/Source/Modules/r.cxx
index b3f109fc0..99db2275f 100644
--- a/Source/Modules/r.cxx
+++ b/Source/Modules/r.cxx
@@ -1301,13 +1301,14 @@ void R::addAccessor(String *memberName, Wrapper *wrapper, String *name,
#define MAX_OVERLOAD 256
+namespace {
struct Overloaded {
Node *n; /* Node */
int argc; /* Argument count */
ParmList *parms; /* Parameters used for overload check */
int error; /* Ambiguity error */
};
-
+}
List * R::Swig_overload_rank(Node *n,
bool script_lang_wrapping) {
diff --git a/Source/Modules/ruby.cxx b/Source/Modules/ruby.cxx
index bb4d19d91..ec4a75dbd 100644
--- a/Source/Modules/ruby.cxx
+++ b/Source/Modules/ruby.cxx
@@ -116,6 +116,7 @@ public:
/* flags for the make_autodoc function */
+namespace {
enum autodoc_t {
AUTODOC_CLASS,
AUTODOC_CTOR,
@@ -127,6 +128,7 @@ enum autodoc_t {
AUTODOC_SETTER,
AUTODOC_NONE
};
+}
static const char *usage = "\
Ruby Options (available with -ruby)\n\