diff options
author | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-14 09:11:44 +0000 |
---|---|---|
committer | svenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2020-10-14 09:11:44 +0000 |
commit | 8ea8a8f1755527f103a31ad79b483a9f2e34edc1 (patch) | |
tree | abe205c0b07bcc8d31ebe2db82cd18ab42fa8cbb /tests/tbs | |
parent | ba90ff276ae7c9b1853675afd6ff3e70027e3122 (diff) | |
download | fpc-8ea8a8f1755527f103a31ad79b483a9f2e34edc1.tar.gz |
* ensure that internal method names (namely operator overloads and class con-/destructors) result in different mangled names from ordinary methods even if they should be converted to lowercase (which happens for section names)
+ added tests
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@47110 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'tests/tbs')
-rw-r--r-- | tests/tbs/tb0679.pp | 28 | ||||
-rw-r--r-- | tests/tbs/tb0680.pp | 26 |
2 files changed, 54 insertions, 0 deletions
diff --git a/tests/tbs/tb0679.pp b/tests/tbs/tb0679.pp new file mode 100644 index 0000000000..9d478152c4 --- /dev/null +++ b/tests/tbs/tb0679.pp @@ -0,0 +1,28 @@ +{ %NORUN } + +program tb0679; + +{$mode objfpc} + +type + TA = class + public + class destructor Destroy; + destructor Destroy; override; + end; + +class destructor TA.Destroy; +begin +end; + +destructor TA.Destroy; +begin + inherited; +end; + +var + A: TA; +begin + A := TA.Create; + A.Free; +end. diff --git a/tests/tbs/tb0680.pp b/tests/tbs/tb0680.pp new file mode 100644 index 0000000000..9af01fbf40 --- /dev/null +++ b/tests/tbs/tb0680.pp @@ -0,0 +1,26 @@ +{ %NORUN } + +program tb0680; + +{$mode objfpc}{$H+} +{$modeswitch advancedrecords} + +type + TTest = record + class operator + (aLeft, aRight: TTest): TTest; + function Plus(aLeft, aRight: TTest): TTest; + end; + +class operator TTest.+(aLeft, aRight: TTest): TTest; +begin + +end; + +function TTest.Plus(aLeft, aRight: TTest): TTest; +begin + +end; + +begin + +end. |