Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix various issues of internal procptr mangling
- bydesc array parameter dimensions weren't being encoded (e.g. array() and array(any), or array(any) and array(any, any) were seen as the same) - Function result CONSTness wasn't encoded, and will be encoded now. This means two function pointers that differ only in function result CONSTness are seen as different now. This matches the overloading rules and the C++ mangling. - BYVAL parameter CONSTness was encoded, and will no longer be encoded now. Two function pointers that differ only in a BYVAL parameter that's CONST in one and non-CONST in the other, are now seen as the same type, as in C++. Overloading isn't allowed based on BYVAL parameter CONSTness either, and the C++ mangling ignores BYVAL parameter CONSTness too.
- Loading branch information
Showing
34 changed files
with
8,311 additions
and
133 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
'' Overloading based on BYVAL CONSTness shouldn't be allowed, as in g++/clang++. | ||
sub f overload( byval p as sub( byval as integer ) ) : end sub | ||
sub f overload( byval p as sub( byval as const integer ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
'' Overloading based on BYVAL CONSTness shouldn't be allowed, as in g++/clang++. | ||
'' Using ALIAS'es to ensure we test the compiler's duplicated definition error, | ||
'' not the assembler's one. | ||
sub f overload alias "f1"( byval p as sub( byval as integer ) ) : end sub | ||
sub f overload alias "f2"( byval p as sub( byval as const integer ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload( byval p as sub( byval as integer ptr ) ) : end sub | ||
sub f overload( byval p as sub( byval as integer const ptr ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload alias "f1"( byval p as sub( byval as integer ptr ) ) : end sub | ||
sub f overload alias "f2"( byval p as sub( byval as integer const ptr ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload( byval p as sub( byval as const integer ptr ) ) : end sub | ||
sub f overload( byval p as sub( byval as const integer const ptr ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload alias "f1"( byval p as sub( byval as const integer ptr ) ) : end sub | ||
sub f overload alias "f2"( byval p as sub( byval as const integer const ptr ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload( byval p as sub stdcall( ) ) : end sub | ||
sub f overload( byval p as sub cdecl ( ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload( byval p as sub cdecl ( ) ) : end sub | ||
sub f overload( byval p as sub pascal ( ) ) : end sub |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
' TEST_MODE : COMPILE_ONLY_FAIL | ||
|
||
sub f overload( byval p as sub stdcall( ) ) : end sub | ||
sub f overload( byval p as sub pascal ( ) ) : end sub |
Oops, something went wrong.