summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* std_array.i std_vector.i tweaksWilliam S Fulton2023-03-223-19/+24
| | | | | | | Efficiency fixes and tidy up from previous commit. Add test case for constructing from differently sized containers. Issue #2478
* Lib/csharp: Better standardized std_vector.i and std_array.iMario Emmenlauer2023-01-102-29/+68
|
* Fix seg fault using %templateWilliam S Fulton2023-01-034-1/+60
| | | | | | | | | Fix seg fault when instantiating templates with parameters that are function parameters containing templates, such as: %template(MyC) C<int(std::vector<int>)>; Closes #983
* Instantiation of C++11 variadic function templatesWilliam S Fulton2023-01-035-55/+132
| | | | | | Complete support for C++11 variadic function templates. Support was previously limited to just one template parameter. Now zero or more template parameters are supported in the %template instantiation.
* Move variadic function template tests to separate testcaseWilliam S Fulton2023-01-033-43/+83
|
* Merge branch 'OCaml-rename_rstrip_encoder-using2-runtime-tests'William S Fulton2022-12-302-0/+11
|\ | | | | | | | | | | * OCaml-rename_rstrip_encoder-using2-runtime-tests: Complete copy of testcase from Python [OCaml] Runtime tests for rename_rstrip_encoder and using2
| * Complete copy of testcase from PythonWilliam S Fulton2022-12-301-1/+3
| |
| * [OCaml] Runtime tests for rename_rstrip_encoder and using2Zackery Spytz2022-12-042-0/+9
| | | | | | | | | | | | | | Add runtime tests for rename_rstrip_encoder and using2. They are based on the runtime tests that already exist for other languages.
* | Merge pull request #2460 from swig-fortran/remove-python-sprintfWilliam S Fulton2022-12-301-3/+3
|\ \ | | | | | | [Python] Eliminate sprintf in generated code
| * | Eliminate sprintf in generated python codeSeth R Johnson2022-12-061-3/+3
| | | | | | | | | | | | | | | | | | | | | Newer clang versions emit warnings in generated code: ``` warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead. [-Wdeprecated-declarations] ```
* | | Allow Scilab 5.5 failure since downloads have movedWilliam S Fulton2022-12-301-0/+1
| | | | | | | | | | | | Waiting for URL redirects to be put in place.
* | | More variadic template testingWilliam S Fulton2022-12-301-3/+31
| | | | | | | | | | | | Test less conventional function ptr parameters
* | | Slight simplification parsing variadic template parametersWilliam S Fulton2022-12-301-12/+4
| | |
* | | Syntax error fixes parsing more elaborate parameter pack argumentsWilliam S Fulton2022-12-303-13/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | that are function pointers and member function pointers. template <typename... V> struct VariadicParms { void ParmsFuncPtrPtr(int (*)(V*...)) {} void ParmsFuncPtrPtrRef(int (*)(V*&...)) {} void ParmsFuncPtrPtrRValueRef(int (*)(V*&&...)) {} void ParmsFuncPtrRef(int (*)(V&...)) {} void ParmsFuncPtrRValueRef(int (*)(V&&...)) {} void ParmsMemFuncPtrPtr(int (KlassMemFuncs::*)(V*...)) {} void ParmsMemFuncPtrPtrRef(int (KlassMemFuncs::*)(V*&...)) {} void ParmsMemFuncPtrPtrRValueRef(int (KlassMemFuncs::*)(V*&&...)) {} void ParmsMemFuncPtrRef(int (KlassMemFuncs::*)(V&...)) {} void ParmsMemFuncPtrRValueRef(int (KlassMemFuncs::*)(V&&...)) {} }; %template(VariadicParms0) VariadicParms<>; %template(VariadicParms1) VariadicParms<A>; Also in various other places such as within noexcept specifiers: template<typename T, typename... Args> void emplace(Args &&... args) noexcept( std::is_nothrow_constructible<T, Args &&...>::value); Issue #1863
* | | Fix instantiation of variadic class templatesWilliam S Fulton2022-12-296-30/+162
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | containing parameter pack arguments that are function pointers. template <typename... V> struct VariadicParms { void ParmsFuncPtrVal(int (*)(V...)) {} }; %template(VariadicParms0) VariadicParms<>; %template(VariadicParms1) VariadicParms<A>;
* | | Fix syntax error parsing variadic template parameter pack argumentsWilliam S Fulton2022-12-233-6/+32
| | | | | | | | | | | | | | | | | | that are function pointers Issue #1863
* | | Lua variadic templates sizeof... constants fixWilliam S Fulton2022-12-221-2/+2
| | |
* | | Parser code refactor around variadic typesWilliam S Fulton2022-12-221-20/+21
| | |
* | | Document improved variadic template supportWilliam S Fulton2022-12-222-11/+48
| | |
* | | Extend variadic template support to various type combinationsWilliam S Fulton2022-12-222-5/+28
| | |
* | | Support multiple arguments in variadic templates.William S Fulton2022-12-2213-66/+465
| | | | | | | | | | | | | | | | | | | | | Remove warning SWIGWARN_CPP11_VARIADIC_TEMPLATE which was issued if more than one argument was used for a variadic template. SwigType enhancement: 'v.' now represents a variadic argument.
* | | Refactor Swig_cparse_template_parms_expand()William S Fulton2022-12-215-65/+140
| | | | | | | | | | | | | | | Break up functionality in Swig_cparse_template_parms_expand() to make it more readable / maintainable.
* | | Refactor %template parameters handlingWilliam S Fulton2022-12-093-62/+82
|/ / | | | | | | | | Move code from %template parsing in parser.y into new function Swig_cparse_template_parms_expand
* | Fix syntax error for misplaced Doxygen comment after struct/class member.William S Fulton2022-12-066-1/+45
| | | | | | | | | | | | | | Fix syntax error using Doxygen member groups syntax, "///*}", when used after final struct/class member. Issue #1636
* | Improved handling of Doxygen comments in parameter listsWilliam S Fulton2022-12-054-44/+92
|/ | | | | | | Fix garbled Doxygen post comments in parameter lists. Fix syntax error parsing a trailing Doxygen comment in parameter lists. Closes #2023
* Fix syntax error parsing of Doxygen comments after last enum itemWilliam S Fulton2022-12-034-0/+32
| | | | | | | It is unconventional to have a doxygen comment after an enum item. It is attached to the previous, that is, the enum item to match Doxygen behaviour. Closes #1609
* Fix parsing of unconventional Doxygen post comments for enum items.William S Fulton2022-12-034-2/+76
| | | | Closes #1715
* Testcase fix for -Wdelete-non-virtual-dtorWilliam S Fulton2022-12-021-0/+1
|
* swig-4.1.1 changesWilliam S Fulton2022-12-022-72/+74
| | | | | Copy CHANGES.current from release-4.1.1 branch into CHANGES. Remove items released in 4.1.1 from master CHANGES.current.
* Template parameters handling tidy upWilliam S Fulton2022-12-021-2/+3
| | | | | | Technical correction on how template parameters are stored in a Parm*. Doesn't actually make any change, but they are now displayed correctly when using debug options such as -debug-module.
* Improved template template parameters support.William S Fulton2022-12-029-62/+212
| | | | | | | | | | | | Previously, specifying more than one simple template template parameter resulted in a parse error. Now multiple template template parameters are working including instantiation with %template. Example: template <template<template<class> class, class> class Op, template<class> class X, class Y> class C { ... }; Closes #624 Closes #1021
* Add ccache-swig hash fix to RELEASENOTESWilliam S Fulton2022-11-301-0/+1
|
* Merge branch 'fixes/push-pop-mismatch'William S Fulton2022-11-292-0/+6
|\ | | | | | | | | * fixes/push-pop-mismatch: Fix push/pop mismatch
| * Fix push/pop mismatchBernhard Rosenkränzer2022-11-292-0/+6
| | | | | | | | | | | | | | | | | | Without this, perlhead.swg does `#pragma GCC diagnostic pop` if `__GNUC__ >= 10` - without any prior `#pragma GCC diagnostic push`. There's also a mismatch between the conditions that trigger `#pragma GCC diagnostic ignored` (where the `push` should be) and the attempt to `#pragma GCC diagnostic pop`.
* | Ocaml name mangling fixWilliam S Fulton2022-11-291-0/+3
| | | | | | | | Fixes testcase template_expr which was resulting in OCaml syntax errors.
* | Add SWIG-4.1.1 RELEASENOTES summaryWilliam S Fulton2022-11-281-0/+5
|/
* Fix UBSAN errors in ccache-swigWilliam S Fulton2022-11-263-9/+15
| | | | | | | | | | | ccache.c:738:18: runtime error: null pointer passed as argument 1, which is declared to never be null Fixes stderr redirect in testname CCACHE_CPP2, when the CCACHE_CPP2 environment variable is defined. mdfour.c:91:20: runtime error: left shift of 139 by 24 places cannot be represented in type 'int' Looks like this brings some stability to the md4 hash calculation. Closes #2449
* Test case fix for std::complex and non-floating types deprecationWilliam S Fulton2022-11-262-4/+4
| | | | | | From Visual Studio 2022: warning C4996: 'std::complex<int>::complex': warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning.
* Test cases fixWilliam S Fulton2022-11-262-5/+5
|
* Add missing testcase cpp11_template_parameters_decltypeWilliam S Fulton2022-11-261-0/+51
|
* Slightly better decltype() support for expressionsWilliam S Fulton2022-11-268-14/+85
| | | | | | | | | | | | | | | | | decltype now accepts C++ expressions instead of just an ID, such as: int i,j; ... decltype(i+j) ... ... decltype(&i) ... These result in a warning for non-trivial expressions which SWIG cannot evaluate: Warning 344: Unable to deduce decltype for 'i+j'. See 'Type Inference' in CPlusPlus.html for workarounds. Issue #1589 Issue #1590
* Fix syntax error parsing unnamed template parameters with a default.William S Fulton2022-11-253-2/+46
| | | | Closes #961
* Follow-on fix for previous changeOlly Betts2022-11-251-2/+2
| | | | | | | These cases don't trigger ubsan warnings and seem to work locally for me, but CI was failing on a number of builds. See #2447
* Fix undefined behaviour in parserOlly Betts2022-11-253-5/+11
| | | | | | | Fix undefined behaviour in swig's parser when handling default parameter expressions containing method calls. Fixes #2447
* Merge branch 'rtests2'William S Fulton2022-11-239-29/+235
|\ | | | | | | | | | | | | | | | | | | | | * rtests2: more r tests more r tests added testcase pointer_reference [PHP] Update docs for removal of -noproxy in SWIG 4.1.0 Conflicts: CHANGES.current
| * more r testsAndLLA2022-11-201-0/+14
| |
| * more r testsAndLLA2022-11-164-0/+187
| |
| * Merge branch 'master' into rtests2AndLLA2022-11-163-29/+10
| |\
| | * [PHP] Update docs for removal of -noproxy in SWIG 4.1.0Olly Betts2022-11-133-29/+10
| | | | | | | | | | | | Closes #2419
| * | added testcase pointer_referenceAndLLA2022-11-161-0/+24
| |/