summaryrefslogtreecommitdiff
path: root/tests/tbs
diff options
context:
space:
mode:
authorsvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-14 09:11:44 +0000
committersvenbarth <svenbarth@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-10-14 09:11:44 +0000
commit8ea8a8f1755527f103a31ad79b483a9f2e34edc1 (patch)
treeabe205c0b07bcc8d31ebe2db82cd18ab42fa8cbb /tests/tbs
parentba90ff276ae7c9b1853675afd6ff3e70027e3122 (diff)
downloadfpc-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.pp28
-rw-r--r--tests/tbs/tb0680.pp26
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.