Commit graph

107 commits

Author SHA1 Message Date
Ian Lance Taylor
ef4d7628a9 [Go] Fix use of goout typemap in non-cgo mode. 2016-04-18 20:35:29 -07:00
Ian Lance Taylor
0f54384ee3 [Go] Fix use of goout typemap when calling base method by
forcing the "type" attribute to the value we need.
2016-04-18 15:30:06 -07:00
William S Fulton
1d62790928 Fix assertion for some languages when wrapping a C++11 enum class that is private in a class.
Also don't wrap private enums for a few languages that attempted to do so.

Closes #594.
2016-03-31 20:27:36 +01:00
William S Fulton
3ac3d061a6 Warning fix in Go wrappers when wrapping string constants
string_constants test case.
2016-03-13 15:36:59 +00:00
William S Fulton
2817e02e35 Merge branch 'ahnolds-clean_osx_go'
* ahnolds-clean_osx_go:
  Go test-suite should now work on OSX
  Don't write empty swigargs structs
  Fail if nocgo version fails
  Handle weak linking on OSX

Conflicts:
	CHANGES.current
2016-01-28 20:03:54 +00:00
Ian Lance Taylor
15b75a74c5 [Go] Ensure structs are properly packed between gc and GCC/clang.
From https://github.com/swig/swig/pull/262.
2016-01-27 15:51:13 -08:00
Alec Cooper
1e7d3d1eb8 Don't write empty swigargs structs 2016-01-23 16:17:33 -05:00
Ian Lance Taylor
7e40e523c3 [Go] Don't emit a constructor function for a director class with an
abstract method, since the function will always panic.

Fixes #435.
2015-10-06 13:55:39 -07:00
William S Fulton
edcdaaec16 Warning fixes for 64bit visual c++ on Windows 2015-07-03 20:59:24 +01:00
Ian Lance Taylor
11d8403c3c [Go] Fix member variables in base classes to handle CWRAP_NATURAL_VAR
correctly.  Add a test case for the problem.

Fixes #339.
2015-06-20 17:42:44 -07:00
Ian Lance Taylor
38c7d59f81 [Go] Adjust last change to always emit a destructor. 2015-05-18 11:28:24 -07:00
Ian Lance Taylor
5bca063536 [Go] Fix bug with ignored destructor--generated code did not compile. 2015-05-18 09:53:13 -07:00
Ian Lance Taylor
48263f4802 [Go] Make sure that arguments for which use memcpy when calling C are
still live after the call.  This ensures that they will not be
collected if the GC runs during the call.
2015-05-04 15:11:31 -07:00
Ian Lance Taylor
baf1fe036a [Go] Correct goargout typemap when matching multiple parameters. 2015-03-16 11:45:15 -07:00
William S Fulton
7fa1058a8a Configure fix and warning fix for Go 2015-03-14 23:40:30 +00:00
Ian Lance Taylor
eccfa288b8 [Go] Consistently use the same type when dispatching to an overloaded
function.
2015-03-12 08:13:16 -07:00
Ian Lance Taylor
a6a9a89524 [Go] Fix overloading on an undefined type. 2015-03-06 17:51:30 -08:00
Ian Lance Taylor
b15a66f2ab [Go] Use imtype when checking for pointer in cgo type. Permit func,
map, chan values to be converted to pointers when using cgo.
2015-03-04 14:25:10 -08:00
Ian Lance Taylor
9ad497c08e [Go] Add -cgo option, required for Go version 1.5 and later. 2015-03-02 14:03:33 -08:00
Ian Lance Taylor
1dd401899f [Go] Change SWIG directors to use a handle instead of a Go pointer.
In future releases of Go it will not be possible to pass Go pointers
into C/C++ code.  The handle is automatically translated back to the
Go value using a Go map.  Since directors must be explicitly deleted,
we can reliably use that call to remove the handle from the map.
2015-02-22 11:09:58 -08:00
Ian Lance Taylor
40f5b1ecc6 [Go] Fixes so that the go_subdir_import test will work with gccgo. 2015-02-22 11:01:24 -08:00
Misha Seltzer
fcf2b68e84 Fixed errors due to last sync. 2015-02-17 10:27:45 +02:00
Misha Seltzer
8da4d20308 Fixed SWIG go for cases when SWIG %import-s another package which is located in a subdirectory. 2015-02-17 10:27:45 +02:00
William S Fulton
1ef899a57b Merge branch 'stricter-warnings'
* stricter-warnings:
  Go changes for wrappers to compile as ISO C90
  Scilab typecheck typemaps fix for C90
  No error for one Javascript node warning
  Warning fix in testcase for Javascript node
  nested_extend_c testcase fix when compiled by C++ target languages
  Temporarily remove -Werror for Scilab testing
  C90 fixes for Javascript JSC
  There are a couple of testcases that aren't compliant and supression via pragmas doesn't work for gcc < 4.8
  Warning suppression change
  Scilab typemap fixes for C89
  compiler warning suppression correction in testcase
  Suppress pedantic warnings in C# testcases
  Suppress pedantic warnings in testcases
  Pedantic warning fix in testcase
  pedantic warning fix for D wrappers
  Travis testing to use testflags.py for setting CFLAGS and CXXFLAGS
  Add travis build for error-declaration-after-statement branch
2015-02-11 23:33:26 +00:00
William S Fulton
e3a8ee1927 Go changes for wrappers to compile as ISO C90
Fixes:
ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
2015-02-11 23:32:46 +00:00
Ian Lance Taylor
1863b191bf [Go] Refactor some functions to make it easier to move to a new
approach for generating Go interfaces.  No functional changes.
2015-02-09 11:21:58 -08:00
Ian Lance Taylor
0a021a938e [Go] Remove all generated calls to _swig_makegostring, as it will no
longer as of Go 1.5.  In Go 1.5 or later user calls to
_swig_makegostring will fail at link time.

Instead, use goout and godirectorin typemaps to allocate strings in Go
code.

Change the Go typemaps support to ignore empty strings, so that we can
define empty strings for regular types so that %apply will override
the definitions for string types.

Fix the gccgo code to wrap SwigCgoCallback around all godirectorin
typemaps.

Add a few newlines after typemap code so that the typemaps don't have
to include them.
2015-02-05 10:15:37 -08:00
Ian Lance Taylor
2562c1eb41 [Go] Remove all calls to _swig_goallocate in the Go runtime, except
for the one from _swig_makegostring.  _swig_goallocate can not work
with the future Go 1.5 release.  When using Go 1.5 attempts to call
_swig_goallocate will fail at link time.
2015-02-04 16:08:44 -08:00
Ian Lance Taylor
2752d78ce6 [Go] Use a unique name for the wrapper functions, since they are
publicly visible.  This permits linking together different SWIG
wrappers in the same program if they wrap the same function.  The
unique name is generated by hashing the .swig file.
2015-02-04 13:18:00 -08:00
William S Fulton
7f8bb02d78 Fix regression in introduced in merge of C++11 strongly typed enums support
- Guile constants bad casts generated
- Go non-public enum value wrappers assert failure

Also cosmetic test comment correction
2014-12-07 21:31:14 +00:00
William S Fulton
b9b9b3cd21 Merge master and C++11 strongly typed enum support
Merging from master:
* 'master' of github.com:/swig/swig:
  Add more docs about _global_ prefix in typemap temporary variables
  Add clarification on _global_ prefix.
  fix for nested template defined out of class (issue #265)
  using an unknown constant emits a notice, not a warning
  Fix typo
  Consistently put whitespace outside of <tt>...</tt> and not inside
  wording tweak
  Go: Document memory management of C++ classes allocated in Go.  Fixes #266.
  revert unrelated file
  Fix #224
  Fixes for clang -fsanitize=undefined-trap -fsanitize-undefined-trap-on-error
  delete unmeaningful macro
  Go: fix overload functions with polymorphic issue
  del tmp files
  GoLang:fix overload functions with polymorphic issue
2014-12-07 17:33:16 +00:00
William S Fulton
713d3d5973 Add c++11 strongly typed enum support for Go 2014-11-28 20:40:37 +00:00
ianlancetaylor
da7133aa8e Merge pull request #235 from dontpanic92/master
Go: fix overload functions with polymorphic
2014-11-17 08:28:07 -08:00
Ian Lance Taylor
0577ff2220 [Go] Adjust last patch to avoid write-after-write data race on global
variable.  Only set the variable if another global variable is true,
but that variable is always false.  The effect is that the variable is
never written, but as far as the compiler is concerned it might escape.
2014-10-14 10:05:43 -07:00
Ian Lance Taylor
1226970b9f [Go] More fixes for Go 1.4. Ensure that values with argout or freearg
typemapes escape, and refer to them using local variables loaded at
the start of the function, in case the argout or freearg template
causes a stack copy.
2014-10-11 19:07:14 -07:00
Anthony Li
60da096a07 GoLang:fix overload functions with polymorphic issue 2014-10-06 19:26:07 +08:00
Ian Lance Taylor
4b64ce71a3 [Go] Adjust generated code to work with upcoming Go 1.4 release. 2014-09-25 12:10:11 -07:00
Ian Lance Taylor
39433f12e4 Fix one case where we test goout rather than has_goout. The effect
was to incorrect use a return statement before the goout typemap
code.
2014-09-12 17:46:21 -07:00
Ian Lance Taylor
06b1157470 Make sure to give all parameters a local before adding all the new
typemaps.

Also mark C functions compiled by 6c and friends as nosplit.
2014-09-10 16:17:54 -07:00
Ian Lance Taylor
acaaa0f31f [Go] Add goargout typemap. 2014-09-09 11:28:04 -07:00
Ian Lance Taylor
1addbb46a8 [Go] Add imtype, goin, goout, godirectorin, and godirectorout
typemaps, to support writing Go code to convert between types.
2014-09-05 17:54:19 -07:00
Ian Lance Taylor
287e84d84c [Go] Change struct definition to use void *, not uint8, so
that the type is recorded as possibly containing
pointers.  This ensures that the 1.3 garbage collector
does not collect pointers passed to C++ code.
2014-07-14 08:33:43 -07:00
Olly Betts
36be36d618 Eliminate needless casting away const from string constants 2014-04-30 12:00:23 +12:00
William S Fulton
dc8428889e Ignored enum fixes.
C#/Java - Enums which have been ignored via %ignore and are subsequently
used are handled slightly differently. Type wrapper classes are now generated
which are effectively a wrapper of an empty enum. Previously in Java uncompilable
code was generated and in C# an int was used.
2014-04-08 23:25:27 +01:00
William S Fulton
df2c9d366d Remove some useless code 2014-03-28 08:04:01 +00:00
William S Fulton
cd2085aae7 Fixes for C enums used in an API and the definition of the enum has not been parsed.
For D, this fixes a segfault in SWIG.

Java, C#, D, Go now produce code that compiles, although the definition of the
enum is needed in order to use the enum properly from the target language.
2014-03-28 07:54:03 +00:00
Ian Lance Taylor
fa9a6d58ed [Go] Fix handling of C type "long" on 32-bit systems. It was broken
for C++ long& and for big-endian systems in general.
2014-01-27 17:49:35 -08:00
Ian Lance Taylor
f2dc3a9c1f [Go] Add %go_import directive. 2014-01-21 11:27:09 -08:00
Ian Lance Taylor
90eb5f9095 [Go] Fix bug that broke using directors from a thread not created by Go. 2014-01-06 09:28:52 -08:00
Ian Lance Taylor
ba049db40b Remove Go -longsize option. 2013-12-17 17:37:55 -08:00