Commit graph

79 commits

Author SHA1 Message Date
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
Ian Lance Taylor
532da6989c [Go] Add -go-pkgpath option. 2013-12-17 13:50:39 -08:00
Ian Lance Taylor
1dca0af024 Update for Go 1.2 release. Add support for linking SWIG code directly
into executable, rather than using a shared library.
2013-12-16 19:50:17 -08:00
Ian Lance Taylor
4cf5de797f Add comment with SWIG file name in files generated for Go. 2013-12-13 11:56:31 -08:00
William S Fulton
b725625e6f Add support for thread_local when specified with other legitimate storage class specifiers - extern and static 2013-02-08 06:36:39 +00:00
William S Fulton
7841a0d097 Remove cvs/svn Id strings 2013-01-12 01:21:16 +00:00
William S Fulton
4714b9b897 Fix bad exit running 'swig -go -help'
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13960 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-13 23:39:25 +00:00
William S Fulton
89052f3b0a Fix Strcmp - it didn't have consistent null pointer handling - revert to what it used to be - a lightweight wrapper around strcmp which means functions once again must not pass in null to it.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13943 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-12-02 13:36:13 +00:00
William S Fulton
f267e08b5b Fix potential null pointer dereferences
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13923 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-20 23:29:07 +00:00
William S Fulton
032f477d7f Fix double delete
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13907 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-19 19:39:20 +00:00
William S Fulton
d918bddfc0 Fix segfaults when using filename paths greater than 1024 characters in length - use String * and heap instead of fixed size static char array buffers.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13904 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-18 00:45:18 +00:00
William S Fulton
46d2486115 Resource leak fixes (or hiding them from Coverity static analysis tool by using String instead of char *)
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13886 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-14 22:16:54 +00:00
William S Fulton
5a1e82a2f4 Remove DohClose (Close) and replace with calls to DohDelete (Delete) to fix some minor memory leaks in most uses of NewFile.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13885 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-14 22:16:07 +00:00
Ian Lance Taylor
786d883d45 Fix Go support for enums to work correctly when Go int type is 64 bits.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13875 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-30 23:38:57 +00:00
William S Fulton
b1ee062d2a Cosmetic variable renaming for consistency across language modules
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13874 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-27 17:38:05 +00:00
William S Fulton
f6229d4b73 Fix director typemap searching so that a typemap specified with a name will be correctly matched. Previously the name was ignored during the typemap search. Implemented by ensuring the 'type' attribute in the Node is set up correctly and using the usual Swig_typemap_lookup on the Node.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13873 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-27 17:37:34 +00:00
Ian Lance Taylor
a42882dcee Adjust for change in the size of the Go type int. Until some time in
the future, require a -intgosize option when invoking SWIG.  Otherwise
there is no reliable way for us to know the size of int, and we need
to know.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13864 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-05 04:58:00 +00:00
Ian Lance Taylor
fad2bd5e1e Ignore templatized methods in base classes.
From Nigel Choi.
Fixes issue 3573098.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13857 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-02 14:54:28 +00:00
Ian Lance Taylor
8af91dcc75 If the user explicitly directs that the Go type be a slice, don't use
a pointer to a slice even if the actual type is reference.  from John
Admanski.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13853 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-10-01 17:18:27 +00:00
William S Fulton
5f294a1404 Fix use of deleted memory in Go - note changes director_enum and
director_basic tests output.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13555 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-08-08 06:05:30 +00:00
Ian Lance Taylor
1e1c0ad951 Fix Go -package option. Previously SWIG could get confused if the
module name was not the same as the package name, as is the default.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13395 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-07-24 05:43:39 +00:00
Ian Lance Taylor
6a20df2bb8 Don't convert uintptr to interface type while not connected to Go
scheduler.  Likewise with calls to defer.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13154 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-05 23:02:42 +00:00
Ian Lance Taylor
7ec208da05 Fix Go support to use appropriate interface for entering and leaving
C/C++ code, depending on GCC version.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13146 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-06-04 05:37:10 +00:00
William S Fulton
7ec1e11604 Fix bug 3529601 - seg fault when a protected method has the director
feature but the parent class does not. Also fix similar problems with
the allprotected feature.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13135 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-29 22:02:43 +00:00
Ian Lance Taylor
c9d8e6720b Remove support for using gccgo 4.6 as the Go compiler. Gccgo 4.7
works, as does the more commonly used gc compiler.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13031 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-05-02 18:10:45 +00:00
Ian Lance Taylor
602730a327 Add support for new features available in gccgo 4.7, notably calling
Entersyscall and Exitsyscall around calls to wrapped C/C++ code.


git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12940 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-20 22:35:40 +00:00
Ian Lance Taylor
eb5130814d Fix problems in Go support revealed by recent test cases.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12922 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-03-14 19:27:23 +00:00
William S Fulton
459e083b3d Fix forward class declaration in a class when used as a base
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12897 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-01-17 07:06:22 +00:00
William S Fulton
de5a78c781 Expand symname special variable in director typemaps
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12887 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-12-23 16:27:15 +00:00