+ forbid usage of $E on targets supporting no fpu emulation

- disabled -Cfsoft on i386

git-svn-id: trunk@7625 -
This commit is contained in:
florian 2007-06-10 17:03:26 +00:00
parent eac1c293e4
commit c7100799ed
7 changed files with 403 additions and 388 deletions

View File

@ -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',

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -454,7 +454,7 @@ unit cgx86;
s:=S_IQ;
end;
else
internalerror(200204041);
internalerror(200204043);
end;
end;