mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-29 18:42:40 +02:00
+ forbid usage of $E on targets supporting no fpu emulation
- disabled -Cfsoft on i386 git-svn-id: trunk@7625 -
This commit is contained in:
parent
eac1c293e4
commit
c7100799ed
@ -51,7 +51,7 @@ Type
|
||||
|
||||
tfputype =
|
||||
(fpu_none,
|
||||
fpu_soft,
|
||||
// fpu_soft,
|
||||
fpu_x87,
|
||||
fpu_sse,
|
||||
fpu_sse2,
|
||||
@ -84,7 +84,7 @@ Const
|
||||
);
|
||||
|
||||
fputypestr : array[tfputype] of string[6] = ('',
|
||||
'SOFT',
|
||||
// 'SOFT',
|
||||
'X87',
|
||||
'SSE',
|
||||
'SSE2',
|
||||
|
@ -348,6 +348,8 @@ scan_e_only_packset=02080_E_Illegal set packing value
|
||||
scan_w_pic_ignored=02081_W_PIC directive ignored
|
||||
% Several targets like windows do not support the PIC directive and need it to be
|
||||
% ignored.
|
||||
scan_w_unsupported_switch_by_target=02082_W_The switch "$1" is not supported by the currently selected target
|
||||
% Some compiler switches like $E are not supported by all targets.
|
||||
% \end{description}
|
||||
#
|
||||
# Parser
|
||||
|
@ -102,6 +102,7 @@ const
|
||||
scanner_e_illegal_warn_state=02079;
|
||||
scan_e_only_packset=02080;
|
||||
scan_w_pic_ignored=02081;
|
||||
scan_w_unsupported_switch_by_target=02082;
|
||||
parser_e_syntax_error=03000;
|
||||
parser_e_dont_nest_interrupt=03004;
|
||||
parser_w_proc_directive_ignored=03005;
|
||||
@ -722,9 +723,9 @@ const
|
||||
option_info=11024;
|
||||
option_help_pages=11025;
|
||||
|
||||
MsgTxtSize = 43132;
|
||||
MsgTxtSize = 43206;
|
||||
|
||||
MsgIdxMax : array[1..20] of longint=(
|
||||
24,82,235,79,63,49,107,22,135,60,
|
||||
24,83,235,79,63,49,107,22,135,60,
|
||||
42,1,1,1,1,1,1,1,1,1
|
||||
);
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2349,9 +2349,11 @@ begin
|
||||
{$endif arm}
|
||||
then
|
||||
begin
|
||||
{$ifdef cpufpemu}
|
||||
include(init_settings.moduleswitches,cs_fp_emulation);
|
||||
{ cs_fp_emulation and fpu_soft are equal on arm }
|
||||
init_settings.fputype:=fpu_soft;
|
||||
{$endif cpufpemu}
|
||||
end;
|
||||
|
||||
|
||||
|
@ -162,15 +162,24 @@ begin
|
||||
begin
|
||||
if current_module.in_global then
|
||||
begin
|
||||
if state='+' then
|
||||
include(current_settings.moduleswitches,tmoduleswitch(setsw))
|
||||
else
|
||||
{$ifndef cpufpemu}
|
||||
if tmoduleswitch(setsw)=cs_fp_emulation then
|
||||
begin
|
||||
{ Turning off debuginfo when lineinfo is requested
|
||||
is not possible }
|
||||
if not((cs_use_lineinfo in current_settings.globalswitches) and
|
||||
(tmoduleswitch(setsw)=cs_debuginfo)) then
|
||||
exclude(current_settings.moduleswitches,tmoduleswitch(setsw));
|
||||
Message1(scan_w_unsupported_switch_by_target,'$'+switch);
|
||||
end
|
||||
else
|
||||
{$endif cpufpemu}
|
||||
begin
|
||||
if state='+' then
|
||||
include(current_settings.moduleswitches,tmoduleswitch(setsw))
|
||||
else
|
||||
begin
|
||||
{ Turning off debuginfo when lineinfo is requested
|
||||
is not possible }
|
||||
if not((cs_use_lineinfo in current_settings.globalswitches) and
|
||||
(tmoduleswitch(setsw)=cs_debuginfo)) then
|
||||
exclude(current_settings.moduleswitches,tmoduleswitch(setsw));
|
||||
end;
|
||||
end;
|
||||
end
|
||||
else
|
||||
|
@ -454,7 +454,7 @@ unit cgx86;
|
||||
s:=S_IQ;
|
||||
end;
|
||||
else
|
||||
internalerror(200204041);
|
||||
internalerror(200204043);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user