florian
c4fe4ab1f5
* correctly handle push <imm> on 80186+
...
git-svn-id: trunk@35455 -
2017-02-19 19:15:16 +00:00
svenbarth
a9888eba70
* also generate Big Obj COFF files with the GNU utilities (needs 2.25 or newer), at least as long as the new option -a5 isn't given, which disables this
...
Note 1: using an older AS might fail anyway if the amount of sections is too high (like in packages\odata\src\sharepoint.pp)
Note 2: it might be an idea to keep track of the created sections in the asmlists and only enable the option if *really* necessary (like with the internal COFF output generator), though this might lead to false positives due to multiple sections with the same name (since I'd prefer to use the KISS principle only a counter would be used)
git-svn-id: trunk@35381 -
2017-02-03 22:45:32 +00:00
florian
668b198d7c
* fix for issue #29936 : check if the internal needed types are available
...
git-svn-id: trunk@35310 -
2017-01-15 20:54:07 +00:00
Jonas Maebe
9cd707a27a
* give an error if -Pxxx is specified to the compiler binary and xxx is not
...
the target architecture this compiler binary supports (mantis #30098 )
git-svn-id: trunk@35299 -
2017-01-14 13:50:41 +00:00
florian
29a2c433f7
* -Sr option for iso mode: in case no command line parameter is passed, the file name for program parameters is derived from their variable name
...
git-svn-id: trunk@35257 -
2017-01-07 14:50:58 +00:00
florian
466d26b5ef
* copyright notice updated to 2017
...
git-svn-id: trunk@35234 -
2017-01-04 21:32:19 +00:00
svenbarth
8c253703f0
* regenerate after r35181
...
git-svn-id: trunk@35182 -
2016-12-23 15:55:24 +00:00
svenbarth
a23cfd9a85
* regenerate msgidx.inc and msgtxt.inc after r35079; thankfully that didn't break the build this time since it was merely a text change ^.^'
...
git-svn-id: trunk@35080 -
2016-12-07 07:38:01 +00:00
Károly Balogh
64650261d1
m68k: refactor of the reglist and the regpair support in the assembler reader. also added support for float register lists for FMOVEM
...
git-svn-id: trunk@34783 -
2016-11-05 18:53:20 +00:00
pierre
e6ee3f445e
msg files regenerated after:
...
* msg/errore.msg: Add new message saying that -gc and -Ur options are incompatible
Add description to -gc option, saying it is experimental.
Add warning at link time for program/library if checkpointer is used in any unit or main code.
git-svn-id: trunk@34566 -
2016-09-27 14:45:44 +00:00
yury
db590da1e6
* Added a new debug option switch -godwarfcpp - Simulate C++ debug information in DWARF. It is more correct way to workaround LLDB issues than in r34558. This option can be used for debuggers, which does not support Pascal correctly.
...
git-svn-id: trunk@34562 -
2016-09-26 13:05:17 +00:00
pierre
17ba06f7c8
Regenerated after: Add missing -Tlinux help line for mipsel compiler
...
git-svn-id: trunk@34448 -
2016-09-08 05:53:19 +00:00
Károly Balogh
464ecab542
huge syscall support refactor for Amiga-likes. removed large chunks of ancient duplicated code, and in general tried to make the entire thing more maintainable and cleaner. also added support for AROS EAXBase syscall convention
...
git-svn-id: trunk@34416 -
2016-09-03 07:57:23 +00:00
pierre
10454d4fec
Regenerated msg files after: Add aarch64 to -P<x> CPU list
...
git-svn-id: trunk@34271 -
2016-08-11 09:07:01 +00:00
svenbarth
68f014a7c5
* regenerate after r34232
...
git-svn-id: trunk@34233 -
2016-07-29 18:44:24 +00:00
Károly Balogh
b0ca7e9594
show AT&T and Intel style assembler switches in i8086 and x86_64 help text. also fix Motorola name initials at several places for 68k
...
git-svn-id: trunk@34081 -
2016-07-06 13:34:38 +00:00
svenbarth
8ec2d5478c
Regenerated after r33890
...
git-svn-id: trunk@33891 -
2016-06-03 20:53:58 +00:00
svenbarth
0f9e556c80
* regenerate message files after r33450
...
git-svn-id: trunk@33451 -
2016-04-08 14:57:08 +00:00
Jonas Maebe
dcedd62049
* regenerated after r33249
...
git-svn-id: trunk@33269 -
2016-03-18 12:43:44 +00:00
florian
cb4773432b
+ hardfloat directive (arm only): use hard float calling conventions regardless of the abi, resolves #29715
...
git-svn-id: trunk@33196 -
2016-03-06 15:47:31 +00:00
nickysn
06b9789928
+ implemented a new {$ASMCPU XXX} directive, allowing to specify a different
...
CPU target for inline assembler blocks. In addition to the different CPUs
(as listed under 'Supported CPU instruction sets:' in the output of 'fpc -i'),
it also supports the special values 'ANY' and 'CURRENT'. 'ANY' means no
restrictions (i.e. all instructions are available). 'CURRENT' means the
current CPU target (as specified with the '-Cp' command line option). For
backward compatibility, the default value is 'ANY' for all CPU targets, except
i8086, where it defaults to 'CURRENT'.
This directive requires support for the new asd_cpu directive in the assembler
writer. This is currently implemented only for NASM, but will be supported in
some of the other assembler writers as well (incl. the x86 internal assembler
writer).
git-svn-id: trunk@33138 -
2016-02-29 22:25:25 +00:00
florian
aa0ec8c0e5
+ show -Mextendedpascal in the help page
...
git-svn-id: trunk@33051 -
2016-02-04 20:32:09 +00:00
florian
368d77dfae
+ show -Miso in the help page
...
git-svn-id: trunk@33050 -
2016-02-04 20:22:36 +00:00
svenbarth
678716be22
msgidx.inc & msgtixt.inc: regenerate after r32978
...
git-svn-id: trunk@32979 -
2016-01-22 15:36:13 +00:00
nickysn
a508f9e5d3
+ added check if the selected cpu is 386+ when writing a 66h or 67h prefix in
...
the i8086 internal object writer. This allows weeding out spurious 386
instructions, as is similarly done by NASM when using it as an external
assembler.
git-svn-id: trunk@32871 -
2016-01-07 15:40:32 +00:00
nickysn
114c76bc4a
+ added i8086 to the list of supported cpus in the compiler usage help screen
...
git-svn-id: trunk@32870 -
2016-01-07 14:38:25 +00:00
florian
37cb35d780
+ support for the .code directive in arm inline assembler
...
git-svn-id: trunk@32840 -
2016-01-03 22:08:25 +00:00
Károly Balogh
bc51cc1151
regenerated msgidx.inc and msgtxt.inc afer r32324
...
git-svn-id: trunk@32325 -
2015-11-15 01:25:17 +00:00
svenbarth
017821f5db
* regenerated msgidx.inc and msgtxt.inc after r32322
...
git-svn-id: trunk@32323 -
2015-11-14 21:22:55 +00:00
nickysn
a553b15a1c
+ handle properly inline asm segment constants different than word:
...
o 'DB SEG symbol' produces an error
o 'DD SEG symbol' (and anything larger than DW, like DQ) adds extra high zeros
to the segment constant (this is Turbo Pascal 7 compatible)
git-svn-id: trunk@32283 -
2015-11-10 21:18:34 +00:00
nickysn
995ca4fb12
+ implemented the 'SEG @DATA' inline assembler directive for i8086
...
git-svn-id: trunk@32280 -
2015-11-10 17:26:21 +00:00
nickysn
7d41d19150
+ added an error message when trying to compile a tiny model DOS .COM file with
...
segment relocations
git-svn-id: trunk@32276 -
2015-11-08 21:13:16 +00:00
pierre
6524e536fa
Regenerated after addition of new general_e_exception_raised Error
...
git-svn-id: trunk@31800 -
2015-09-23 16:39:58 +00:00
svenbarth
79f19f79f2
msg/errore.msg:
...
+ add error message if a generic method is declared inside an interface
+ add error message if a generic method is declared as virtual
git-svn-id: trunk@31764 -
2015-09-18 14:52:47 +00:00
Jonas Maebe
4564bffb85
* use binutils 2.19+ linker script "augmentation" functionality to specify
...
how the fpc sections have to be linked *on Linux*. This prevents the
"did you forget -T" warnings from ld, and in general is more correct than
our previous approach of specifying a complete linker script without -T
and hoping that there won't be any unexpected interactions with ld's
built-in linker script (fixed version of r31664, thanks to Alan Modra)
o use the new -X9 command line option to generate linker scripts that
are compatible with binutils older than 2.19 (reverts to the old
behaviour)
git-svn-id: trunk@31675 -
2015-09-14 07:24:54 +00:00
Jonas Maebe
e06a759e20
- reverted r31664, it causes crashes with some ld versions :/
...
git-svn-id: trunk@31670 -
2015-09-13 20:14:46 +00:00
Jonas Maebe
cd41bf672c
* use binutils 2.19+ linker script "augmentation" functionality to specify
...
how the fpc sections have to be linked *on Linux*. This prevents the
"did you forget -T" warnings from ld, and in general is more correct than
our previous approach of specifying a complete linker script without -T
and hoping that there won't be any unexpected interactions with ld's
built-in linker script
o use the new -X9 command line option to generate linker scripts that
are compatible with binutils older than 2.19 (reverts to the old
behaviour)
git-svn-id: trunk@31664 -
2015-09-13 19:06:14 +00:00
nickysn
253793ab9d
+ added the 'farprocspushoddbp' target switch to the help screen
...
git-svn-id: trunk@31570 -
2015-09-07 19:23:25 +00:00
nickysn
4c9b339c22
+ added the huge memory model option to the compiler help screen
...
git-svn-id: trunk@31518 -
2015-09-04 20:43:38 +00:00
Jonas Maebe
e720b44471
* expand the error message for when trying to use a formal class with an
...
explanation of what to do
git-svn-id: trunk@31457 -
2015-08-30 14:32:56 +00:00
nickysn
e9c790f4eb
+ support 'SEG' in the i8086 inline assembler
...
git-svn-id: trunk@31428 -
2015-08-26 15:57:44 +00:00
nickysn
6e20e0fc84
+ added checks and error messages in case a 16-bit segment or group exceeds 64k
...
git-svn-id: trunk@31416 -
2015-08-25 01:01:20 +00:00
florian
ee89e99189
* correctly write an error if one tries to implement a method introduced in a generic in a specialization of the generic, resolves issue #23169
...
git-svn-id: trunk@31241 -
2015-07-28 21:16:47 +00:00
Jonas Maebe
e3ddf1c0b7
* fixed typos in error.msg (patch by Stéphane Aulery, mantis #27931 )
...
git-svn-id: trunk@30725 -
2015-04-25 18:15:18 +00:00
nickysn
bde7d0aacb
+ added "code segment too large" and "data segment too large" error messages
...
git-svn-id: trunk@30687 -
2015-04-20 23:47:22 +00:00
Jonas Maebe
3684e7665d
* changed temporary type_e_anonymous_function_unsupported message into an
...
inline comment, because using a high message number wastes space in
the messages array
git-svn-id: trunk@30666 -
2015-04-19 14:31:35 +00:00
Jonas Maebe
a56bf0f892
* regenerated message files after r30604
...
git-svn-id: trunk@30606 -
2015-04-15 18:29:47 +00:00
nickysn
470fb65e80
+ implemented aasmcpu.process_ea for i8086
...
git-svn-id: trunk@30495 -
2015-04-08 12:54:09 +00:00
florian
9ab9e03650
* limit number of possible units with initialization/finalization for a certain architecture to high(aint)
...
+ give an error if the number of possible units is exceeded
git-svn-id: trunk@30450 -
2015-04-05 21:06:58 +00:00
florian
91db2a1698
+ report when compilation of a unit is stopped because it has been already compiled during the recursive search in uses clauses
...
git-svn-id: trunk@30001 -
2015-02-24 21:46:09 +00:00
Jonas Maebe
3b5adcb3de
+ print iphonesim/x86_86-specific command line options in the help
...
git-svn-id: trunk@29982 -
2015-02-23 22:57:12 +00:00
Jonas Maebe
dcb6f2baae
+ print Darwin/AArch64-specific command line options in the help
...
git-svn-id: trunk@29981 -
2015-02-23 22:57:09 +00:00
Jonas Maebe
146e3bcb9e
* synchronised with trunk till r29513
...
git-svn-id: branches/blocks@29516 -
2015-01-21 23:28:34 +00:00
Jonas Maebe
e97f31541e
- reverted partial commit of merge
...
git-svn-id: branches/blocks@29515 -
2015-01-21 23:24:37 +00:00
Jonas Maebe
a76bbf363d
* synchronised with trunk r29513
...
git-svn-id: branches/blocks@29514 -
2015-01-21 23:18:29 +00:00
Jonas Maebe
990e47f2d3
* give a warning instead of an error if a parameter or local variable in a
...
an Objective-C method masks an identifier from a category, because due
to the fact that all standard categories are imported at the same time via
the CocoaAll unit, this can often happen with categories you don't know/
care about. These errors also didn't happen in 2.6.x
git-svn-id: trunk@29497 -
2015-01-17 15:27:42 +00:00
florian
d25dbec070
* allow the varargs directive in combination with stdcall as well, resolves #27299
...
git-svn-id: trunk@29496 -
2015-01-17 14:23:38 +00:00
Tomas Hajny
b1e51054cb
* add information about -vz to the help pages
...
git-svn-id: trunk@29475 -
2015-01-14 17:08:26 +00:00
pierre
b3a4d47b96
Regenerated after msg/errore.msg commit:
...
Added two new messages for changes in assembler symbols after use.
Those changes can lead to invalid code generation.
git-svn-id: trunk@29445 -
2015-01-12 10:10:21 +00:00
svenbarth
af43e5e3e9
Fix for Mantis #24872 .
...
psub.pas, tcgprocinfo.parse_body:
* also check record symtables besides object symtables to determine whether the staticsymtable is accessed from a globally declared generic
* use a translateable message if the static symtable is accessed if it should not
msg/errore.msg:
+ add new error message for when the static symtable is accessed from a global generic
msgidx.inc & msgtixt.inc:
* regenerated
+ added test
git-svn-id: trunk@29427 -
2015-01-06 20:46:12 +00:00
florian
9b6b029ca1
* patch by Yuri Zaporozhets to fix typos in text messages, resolves #27250
...
git-svn-id: trunk@29396 -
2015-01-04 20:46:36 +00:00
florian
ec3063c8cc
* forgot to regenerate msgtxt.inc
...
git-svn-id: trunk@29391 -
2015-01-04 18:48:52 +00:00
Tomas Hajny
ee82b6ea0b
* do not mention OS/2 and EMX on option list for x86_64
...
git-svn-id: trunk@29318 -
2014-12-23 23:08:43 +00:00
florian
4289dd667d
* managed types cause a different warning/hint when they are
...
used uninitialized, so users can turn off these messages if they want, resolves #24601 and #26403
git-svn-id: trunk@29295 -
2014-12-14 20:48:54 +00:00
florian
bb01872821
+ handle -CPPACKENUM and -CPPACKRECORD, resolves #27153
...
git-svn-id: trunk@29283 -
2014-12-13 21:08:18 +00:00
svenbarth
e2c546b26f
Regenerate msg*.inc files
...
git-svn-id: trunk@29239 -
2014-12-09 21:20:05 +00:00
florian
25e19f27a0
+ write name of missing feature in error message
...
git-svn-id: trunk@29211 -
2014-12-07 18:20:56 +00:00
svenbarth
2288df9fcf
Fix for Mantis #27073 . The -vx option is not only for Win32, but in fact for information about tool invocation on all platforms.
...
git-svn-id: trunk@29129 -
2014-11-23 20:46:45 +00:00
Tomas Hajny
4c98113569
* note about multiple 't' in -gt added to the help page
...
git-svn-id: trunk@29099 -
2014-11-21 13:53:53 +00:00
Tomas Hajny
fc17e318b0
* add some previously missing options to the help page, add support for listing recognized compiler and RTL features in -i and allow skipping an empty section (controllertypes) in -i listing by providing support of multiple output lines based on one source line in the msg file using $\n as newline
...
git-svn-id: trunk@29097 -
2014-11-21 13:03:24 +00:00
Tomas Hajny
f7e6ea56d9
* support for machine-parseable output of information in fpc -i plus improvements in help (including previously missing information for some less used platforms
...
git-svn-id: trunk@29032 -
2014-11-09 14:55:31 +00:00
Tomas Hajny
2a0d760a3f
* fixed typo (can not)
...
git-svn-id: trunk@29030 -
2014-11-08 21:03:22 +00:00
Jonas Maebe
839d11eac9
* mention that misplaced global directives are ignored (mantis #27004 )
...
git-svn-id: trunk@28998 -
2014-11-06 09:02:40 +00:00
Károly Balogh
4431ba2c08
merged/updated AROS/i386 target to trunk from AROS branch, to support Marcus Sackrow's work on AROS support which will hopefully benefit all Amiga-like targets (classic, MorphOS) on the long run. Compiler only, RTL comes in the next run.
...
git-svn-id: trunk@28432 -
2014-08-17 18:18:07 +00:00
Jonas Maebe
c730e16031
* changed the syntax for block procvars from "xxx is block" to
...
"reference to ...; cdecl;". The "reference to ..." syntax is what Delphi
uses for anonymous function references. The "cdecl;" indicates that this
is for the C-variant of such references, which is what blocks are
git-svn-id: branches/blocks@28233 -
2014-07-18 09:15:29 +00:00
Tomas Hajny
82d62aa883
* added description for option @ and missing bracket at the end of list for -P
...
git-svn-id: trunk@28188 -
2014-07-08 22:33:18 +00:00
nickysn
7f9fa145e8
+ added error message in case the HUGEPOINTERNORMALIZATION directive is used
...
with an invalid argument
git-svn-id: trunk@28152 -
2014-07-04 17:16:58 +00:00
nickysn
a3b48b79cb
- rm the scan_w_hugepointernormalization_not_support message, replaced with
...
scanner_w_directive_ignored_on_target
git-svn-id: trunk@28150 -
2014-07-04 14:03:18 +00:00
svenbarth
30be5d8d33
As discussed on core enable the abstract class construction warning by default and also make it controllable with {$warn constructing_abstract ...}.
...
* scandir.pas, dir_warn: also adjust the message state for type_w_instance_abstract_class if the identifier is CONSTRUCTING_ABSTRACT
* msg/errore.msg: enable type_w_instance_abstract_class by default
* msgidx.inc, msgtxt.inc: updated
git-svn-id: trunk@28137 -
2014-07-02 19:40:22 +00:00
svenbarth
a7a9440692
Add a new warning message that is generated if an instance of an abstract class is created. This message is disabled by default, but can be switched on by using {$warn 4122 on} or {$warn 4122 error}.
...
Please note that this warning won't be triggered if an instance of that class is created using a class variable of that class type as the compiler can not know the type contained in the variable at compile time (see also the added test).
+ msg/errore.msg: added disabled message which informs about the instantiation of an abstract class
* pexpr.pas, do_member_read: generate the message if we have a constructor call for an abstract class using a loadvmtaddrnode (thus the type name is used and not a class variable)
* msg{idx,txt}.inc: updated
+ added test
git-svn-id: trunk@28127 -
2014-07-01 20:41:05 +00:00
nickysn
b3bb9df19f
+ added a $HUGEPOINTERNORMALIZATION switch
...
git-svn-id: trunk@28088 -
2014-06-27 13:56:12 +00:00
nickysn
8b7863d076
+ added warning in case a far pointer is declared on a platform that does not
...
support them
git-svn-id: trunk@28084 -
2014-06-27 09:26:08 +00:00
nickysn
140ce2a880
+ added the compact and large memory models to the compiler command line option
...
help screen
git-svn-id: trunk@28082 -
2014-06-26 22:56:55 +00:00
nickysn
ce87e72721
* show an error if the user attempts to create a dos .com file in an i8086
...
memory model other than tiny
git-svn-id: trunk@28081 -
2014-06-26 22:52:57 +00:00
nickysn
db011dfb7a
+ added a warning if HeapMax<HeapMin is specified with the $M directive
...
git-svn-id: trunk@28042 -
2014-06-24 09:16:03 +00:00
Jonas Maebe
2df1d5ec58
* don't allow default parameter values for parameter types that don't accept
...
constant values (i.e., anything non-value/const/constref) (mantis #263363 )
o fixed default parameter value for var-parameter in chmreader
git-svn-id: trunk@28016 -
2014-06-20 19:50:20 +00:00
nickysn
82eb84ddff
+ added warning in case of an $M directive with an invalid stack size specified
...
git-svn-id: trunk@27964 -
2014-06-15 10:14:56 +00:00
nickysn
ce0bd81273
+ show an error message 'procedure must be far' if an attempt is made to convert
...
a near proc to a procvar in a i8086 far code memory model
git-svn-id: trunk@27567 -
2014-04-13 19:29:28 +00:00
florian
d88d644925
+ support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
...
Currently it is implemented only for x86-CPUs supporting the FMA extension. While it would
be possible to implement it in software or simulate fma(<single>,<single>,<single>) using
double operations, it makes no sense in my opinion to do so.
git-svn-id: trunk@27564 -
2014-04-13 19:21:54 +00:00
Jonas Maebe
d9dab6f2f1
* changed the severity of messages showing overloaded routines with all
...
parameters from hint to error in case they give more information
about definition errors
git-svn-id: trunk@27521 -
2014-04-10 21:07:17 +00:00
Jonas Maebe
4a0528399e
* check all overloaded routines for mangled name conflicts on the JVM
...
platform, as different Pascal declarations are mapped to the same
JVM representation
git-svn-id: trunk@27520 -
2014-04-10 21:07:14 +00:00
pierre
ca156aa64a
Force external linker for nasm smartlinking
...
git-svn-id: trunk@27512 -
2014-04-10 15:02:04 +00:00
Jonas Maebe
9420a5d7a7
* also check for targets not supporting -gc/checkpointer functionality in
...
compiler directives, not just on the command line (mantis #25862 )
git-svn-id: trunk@27128 -
2014-03-13 20:42:18 +00:00
florian
6697939903
* replaced some aren't, weren't, can't by are not, were not, cannot
...
git-svn-id: trunk@26842 -
2014-02-22 16:07:27 +00:00
florian
76b2074e59
* updated year in logo from 2013 to 2014
...
git-svn-id: trunk@26841 -
2014-02-22 15:58:03 +00:00
sergei
e1cf19d05d
+ Require -d and -u command line options to have an argument, Mantis #25082 .
...
+ Check that argument of -d and -u is a Pascal identifier, Mantis #17056 .
git-svn-id: trunk@26755 -
2014-02-12 04:44:35 +00:00
pierre
6feab20b01
regenerated after: Add different message for static libraary not supported
...
git-svn-id: trunk@26597 -
2014-01-27 22:28:29 +00:00
pierre
408dc2d2c1
Regenerated after: Add -h output for new assemblers
...
git-svn-id: trunk@26552 -
2014-01-21 09:01:21 +00:00
pierre
12a1a680cc
Regenerated after: Add help output for new -ao option to set asmextraopt
...
git-svn-id: trunk@26544 -
2014-01-21 00:20:51 +00:00
paul
79ef05407a
compiler: fix error message (was error message about resourcestring for property)
...
git-svn-id: trunk@26389 -
2014-01-05 07:12:41 +00:00