summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/globals.pas13
-rw-r--r--compiler/node.pas7
-rw-r--r--compiler/parser.pas8
-rw-r--r--compiler/pass_1.pas16
-rw-r--r--compiler/ppu.pas2
-rw-r--r--compiler/scandir.pas69
-rw-r--r--compiler/scanner.pas18
-rw-r--r--compiler/switches.pas83
-rw-r--r--compiler/verbose.pas27
-rw-r--r--tests/tbf/tb0074.pp2
-rw-r--r--tests/tbf/tb0180.pp2
-rw-r--r--tests/tbf/tb0182.pp2
-rw-r--r--tests/tbf/tb0183.pp2
-rw-r--r--tests/tbf/tb0193.pp2
-rw-r--r--tests/tbf/tb0195.pp2
-rw-r--r--tests/tbf/tb0196.pp2
-rw-r--r--tests/tbf/tb0197.pp2
-rw-r--r--tests/tbf/tb0207.pp2
-rw-r--r--tests/tbf/tb0208.pp2
-rw-r--r--tests/tbs/tb0271.pp2
-rw-r--r--tests/tbs/tb0287.pp2
-rw-r--r--tests/tbs/tb0376.pp2
-rw-r--r--tests/tbs/tb0500.pp2
-rw-r--r--tests/tbs/tb0501.pp2
-rw-r--r--tests/tbs/tb0502.pp2
-rw-r--r--tests/tbs/tb0504.pp2
-rw-r--r--tests/tbs/tb0522.pp2
-rw-r--r--tests/tbs/tb0525.pp2
-rw-r--r--tests/tbs/tb0534.pp2
-rw-r--r--tests/tbs/tb0542.pp2
-rw-r--r--tests/test/cg/tcnvptr.pp2
-rw-r--r--tests/test/tfwork2.pp2
-rw-r--r--tests/test/tmainnam.pp2
-rw-r--r--tests/webtbf/tw0769b.pp2
-rw-r--r--tests/webtbf/tw0769c.pp2
-rw-r--r--tests/webtbf/tw10833a.pp2
-rw-r--r--tests/webtbf/tw10849.pp2
-rw-r--r--tests/webtbf/tw11846.pp2
-rw-r--r--tests/webtbf/tw11846c.pp2
-rw-r--r--tests/webtbf/tw11848a.pp2
-rw-r--r--tests/webtbf/tw11849a.pp2
-rw-r--r--tests/webtbf/tw12075.pp18
-rw-r--r--tests/webtbf/tw2209.pp2
-rw-r--r--tests/webtbf/tw2752.pp2
-rw-r--r--tests/webtbf/tw3553.pp2
-rw-r--r--tests/webtbf/tw3562.pp2
-rw-r--r--tests/webtbf/tw3631.pp2
-rw-r--r--tests/webtbf/tw3643.pp2
-rw-r--r--tests/webtbf/tw4139.pp2
-rw-r--r--tests/webtbf/tw4737.pp2
-rw-r--r--tests/webtbf/tw8151b.pp2
-rw-r--r--tests/webtbf/tw8151c.pp2
-rw-r--r--tests/webtbf/tw8264a.pp2
-rw-r--r--tests/webtbs/tw0769.pp2
-rw-r--r--tests/webtbs/tw10736.pp2
-rw-r--r--tests/webtbs/tw10931.pp2
-rw-r--r--tests/webtbs/tw11846a.pp4
-rw-r--r--tests/webtbs/tw11846b.pp2
-rw-r--r--tests/webtbs/tw11848.pp2
-rw-r--r--tests/webtbs/tw11849.pp2
-rw-r--r--tests/webtbs/tw12050a.pp2
-rw-r--r--tests/webtbs/tw12050b.pp2
-rw-r--r--tests/webtbs/tw12076.pp16
-rw-r--r--tests/webtbs/tw12508a.pp2
-rw-r--r--tests/webtbs/tw1851.pp2
-rw-r--r--tests/webtbs/tw1948.pp2
-rw-r--r--tests/webtbs/tw2307.pp2
-rw-r--r--tests/webtbs/tw2425.pp2
-rw-r--r--tests/webtbs/tw2435.pp2
-rw-r--r--tests/webtbs/tw2438.pp2
-rw-r--r--tests/webtbs/tw2710.pp2
-rw-r--r--tests/webtbs/tw2789.pp2
-rw-r--r--tests/webtbs/tw2815.pp2
-rw-r--r--tests/webtbs/tw2817.pp2
-rw-r--r--tests/webtbs/tw2832.pp2
-rw-r--r--tests/webtbs/tw2841.pp2
-rw-r--r--tests/webtbs/tw3172.pp2
-rw-r--r--tests/webtbs/tw3281.pp2
-rw-r--r--tests/webtbs/tw3364.pp2
-rw-r--r--tests/webtbs/tw3490.pp2
-rw-r--r--tests/webtbs/tw3567.pp2
-rw-r--r--tests/webtbs/tw3669.pp2
-rw-r--r--tests/webtbs/tw3952.pp2
-rw-r--r--tests/webtbs/tw3970.pp2
-rw-r--r--tests/webtbs/tw4006.pp2
-rw-r--r--tests/webtbs/tw4043.pp2
-rw-r--r--tests/webtbs/tw4068.pp2
-rw-r--r--tests/webtbs/tw4330.pp2
-rw-r--r--tests/webtbs/tw4332.pp2
-rw-r--r--tests/webtbs/tw4954.pp2
-rw-r--r--tests/webtbs/tw5100.pp2
-rw-r--r--tests/webtbs/tw5100a.pp2
-rw-r--r--tests/webtbs/tw7179.pp2
-rw-r--r--tests/webtbs/tw7285.pp2
-rw-r--r--tests/webtbs/tw7808.pp2
-rw-r--r--tests/webtbs/tw8090.pp2
-rw-r--r--tests/webtbs/tw8151a.pp2
-rw-r--r--tests/webtbs/tw8264.pp2
-rw-r--r--tests/webtbs/tw8282.pp2
-rw-r--r--tests/webtbs/tw9072.pp2
100 files changed, 264 insertions, 193 deletions
diff --git a/compiler/globals.pas b/compiler/globals.pas
index 3ce039f463..e7fa38dd5d 100644
--- a/compiler/globals.pas
+++ b/compiler/globals.pas
@@ -161,6 +161,15 @@ interface
property items[I:longint]:TLinkRec read getlinkrec; default;
end;
+ tpendingstate = record
+ nextverbositystr : string;
+ nextlocalswitches : tlocalswitches;
+ nextverbosityfullswitch: longint;
+ verbosityfullswitched,
+ localswitcheschanged : boolean;
+ end;
+
+
var
{ specified inputfile }
inputfilepath : string;
@@ -252,9 +261,7 @@ interface
init_settings,
current_settings : tsettings;
- nextlocalswitches : tlocalswitches;
- localswitcheschanged : boolean;
-
+ pendingstate : tpendingstate;
{ Memory sizes }
heapsize,
stacksize,
diff --git a/compiler/node.pas b/compiler/node.pas
index 15136e451b..be933db519 100644
--- a/compiler/node.pas
+++ b/compiler/node.pas
@@ -298,6 +298,7 @@ interface
resultdefderef : tderef;
fileinfo : tfileposinfo;
localswitches : tlocalswitches;
+ verbosity : longint;
optinfo : poptinfo;
constructor create(t:tnodetype);
{ this constructor is only for creating copies of class }
@@ -466,7 +467,7 @@ interface
implementation
uses
- cutils,verbose,ppu,
+ cutils,verbose,ppu,comphook,
symconst,
nutils,nflw,
defutil;
@@ -695,6 +696,7 @@ implementation
{ save local info }
fileinfo:=current_filepos;
localswitches:=current_settings.localswitches;
+ verbosity:=status.verbosity;
resultdef:=nil;
flags:=[];
end;
@@ -712,6 +714,7 @@ implementation
blocktype:=tblock_type(ppufile.getbyte);
ppufile.getposinfo(fileinfo);
ppufile.getsmallset(localswitches);
+ verbosity:=ppufile.getlongint;
ppufile.getderef(resultdefderef);
ppufile.getsmallset(flags);
{ updated by firstpass }
@@ -726,6 +729,7 @@ implementation
ppufile.putbyte(byte(block_type));
ppufile.putposinfo(fileinfo);
ppufile.putsmallset(localswitches);
+ ppufile.putlongint(verbosity);
ppufile.putderef(resultdefderef);
ppufile.putsmallset(flags);
end;
@@ -887,6 +891,7 @@ implementation
p.resultdef:=resultdef;
p.fileinfo:=fileinfo;
p.localswitches:=localswitches;
+ p.verbosity:=verbosity;
{ p.list:=list; }
result:=p;
end;
diff --git a/compiler/parser.pas b/compiler/parser.pas
index 14ad2a0d45..f94d306f1a 100644
--- a/compiler/parser.pas
+++ b/compiler/parser.pas
@@ -41,7 +41,7 @@ implementation
fksysutl,
{$ENDIF}
cutils,cclasses,
- globtype,version,tokens,systems,globals,verbose,
+ globtype,version,tokens,systems,globals,verbose,switches,
symbase,symtable,symsym,
finput,fmodule,fppu,
aasmbase,aasmtai,aasmdata,
@@ -309,11 +309,7 @@ implementation
oldparse_only:=parse_only;
{ save akt... state }
{ handle the postponed case first }
- if localswitcheschanged then
- begin
- current_settings.localswitches:=nextlocalswitches;
- localswitcheschanged:=false;
- end;
+ flushpendingswitchesstate;
oldcurrent_filepos:=current_filepos;
old_settings:=current_settings;
end;
diff --git a/compiler/pass_1.pas b/compiler/pass_1.pas
index 8efd883e15..d5178d52e6 100644
--- a/compiler/pass_1.pas
+++ b/compiler/pass_1.pas
@@ -41,7 +41,7 @@ interface
implementation
uses
- globtype,systems,cclasses,
+ globtype,comphook,systems,cclasses,
cutils,globals,
procinfo,
cgbase,symdef
@@ -61,6 +61,7 @@ implementation
var
oldcodegenerror : boolean;
oldlocalswitches : tlocalswitches;
+ oldverbosity : longint;
oldpos : tfileposinfo;
hp : tnode;
begin
@@ -69,9 +70,11 @@ implementation
oldcodegenerror:=codegenerror;
oldpos:=current_filepos;
oldlocalswitches:=current_settings.localswitches;
+ oldverbosity:=status.verbosity;
codegenerror:=false;
current_filepos:=p.fileinfo;
current_settings.localswitches:=p.localswitches;
+ status.verbosity:=p.verbosity;
hp:=p.pass_typecheck;
{ should the node be replaced? }
if assigned(hp) then
@@ -84,6 +87,7 @@ implementation
end;
current_settings.localswitches:=oldlocalswitches;
current_filepos:=oldpos;
+ status.verbosity:=oldverbosity;
if codegenerror then
begin
include(p.flags,nf_error);
@@ -115,6 +119,7 @@ implementation
oldcodegenerror : boolean;
oldlocalswitches : tlocalswitches;
oldpos : tfileposinfo;
+ oldverbosity: longint;
hp : tnode;
begin
if (nf_pass1_done in p.flags) then
@@ -124,17 +129,17 @@ implementation
oldcodegenerror:=codegenerror;
oldpos:=current_filepos;
oldlocalswitches:=current_settings.localswitches;
+ oldverbosity:=status.verbosity;
codegenerror:=false;
current_filepos:=p.fileinfo;
current_settings.localswitches:=p.localswitches;
+ status.verbosity:=p.verbosity;
{ checks make always a call }
if ([cs_check_range,cs_check_overflow,cs_check_stack] * current_settings.localswitches <> []) then
include(current_procinfo.flags,pi_do_call);
{ determine the resultdef if not done }
if (p.resultdef=nil) then
begin
- current_filepos:=p.fileinfo;
- current_settings.localswitches:=p.localswitches;
hp:=p.pass_typecheck;
{ should the node be replaced? }
if assigned(hp) then
@@ -152,15 +157,11 @@ implementation
if p.resultdef=nil then
p.resultdef:=generrordef;
end;
- current_settings.localswitches:=oldlocalswitches;
- current_filepos:=oldpos;
codegenerror:=codegenerror or oldcodegenerror;
end;
if not(nf_error in p.flags) then
begin
{ first pass }
- current_filepos:=p.fileinfo;
- current_settings.localswitches:=p.localswitches;
hp:=p.pass_1;
{ should the node be replaced? }
if assigned(hp) then
@@ -197,6 +198,7 @@ implementation
codegenerror:=codegenerror or oldcodegenerror;
current_settings.localswitches:=oldlocalswitches;
current_filepos:=oldpos;
+ status.verbosity:=oldverbosity;
end
else
codegenerror:=true;
diff --git a/compiler/ppu.pas b/compiler/ppu.pas
index 51b11ae05d..62b7263fd8 100644
--- a/compiler/ppu.pas
+++ b/compiler/ppu.pas
@@ -43,7 +43,7 @@ type
{$endif Test_Double_checksum}
const
- CurrentPPUVersion = 92;
+ CurrentPPUVersion = 93;
{ buffer sizes }
maxentrysize = 1024;
diff --git a/compiler/scandir.pas b/compiler/scandir.pas
index 8a38587044..6b5144f404 100644
--- a/compiler/scandir.pas
+++ b/compiler/scandir.pas
@@ -41,11 +41,17 @@ implementation
rabase;
const
- localswitchesstackmax = 20;
+ switchesstatestackmax = 20;
+
+ type
+ tsavedswitchesstate = record
+ localsw: tlocalswitches;
+ verbosity: longint;
+ end;
var
- localswitchesstack: array[0..localswitchesstackmax] of tlocalswitches;
- localswitchesstackpos: Integer;
+ switchesstatestack: array[0..switchesstatestackmax] of tsavedswitchesstate;
+ switchesstatestackpos: Integer;
{*****************************************************************************
Helpers
@@ -68,7 +74,7 @@ implementation
begin
{ support ON/OFF }
state:=current_scanner.ReadState;
- SetVerbosity(flag+state);
+ recordpendingverbosityswitch(flag,state);
end;
@@ -93,15 +99,7 @@ implementation
begin
state:=current_scanner.readstate;
if (sw<>cs_localnone) and (state in ['-','+']) then
- begin
- if not localswitcheschanged then
- nextlocalswitches:=current_settings.localswitches;
- if state='-' then
- exclude(nextlocalswitches,sw)
- else
- include(nextlocalswitches,sw);
- localswitcheschanged:=true;
- end;
+ recordpendinglocalswitch(sw,state);
end;
procedure do_localswitchdefault(sw:tlocalswitch);
@@ -110,23 +108,7 @@ implementation
begin
state:=current_scanner.readstatedefault;
if (sw<>cs_localnone) and (state in ['-','+','*']) then
- begin
- if not localswitcheschanged then
- nextlocalswitches:=current_settings.localswitches;
- if state='-' then
- exclude(nextlocalswitches,sw)
- else
- if state='+' then
- include(nextlocalswitches,sw)
- else
- begin
- if sw in init_settings.localswitches then
- include(nextlocalswitches,sw)
- else
- exclude(nextlocalswitches,sw);
- end;
- localswitcheschanged:=true;
- end;
+ recordpendinglocalswitch(sw,state);
end;
@@ -945,16 +927,12 @@ implementation
procedure dir_pop;
begin
- if localswitchesstackpos < 1 then
+ if switchesstatestackpos < 1 then
Message(scan_e_too_many_pop);
- if not localswitcheschanged then
- nextlocalswitches:=current_settings.localswitches;
-
- Dec(localswitchesstackpos);
- nextlocalswitches:= localswitchesstack[localswitchesstackpos];
-
- localswitcheschanged:=true;
+ Dec(switchesstatestackpos);
+ recordpendinglocalfullswitch(switchesstatestack[switchesstatestackpos].localsw);
+ recordpendingverbosityfullswitch(switchesstatestack[switchesstatestackpos].verbosity);
end;
procedure dir_profile;
@@ -970,17 +948,14 @@ implementation
procedure dir_push;
begin
- if localswitchesstackpos > localswitchesstackmax then
+ if switchesstatestackpos > switchesstatestackmax then
Message(scan_e_too_many_push);
- if localswitcheschanged then
- begin
- current_settings.localswitches:=nextlocalswitches;
- localswitcheschanged:=false;
- end;
+ flushpendingswitchesstate;
- localswitchesstack[localswitchesstackpos]:= current_settings.localswitches;
- Inc(localswitchesstackpos);
+ switchesstatestack[switchesstatestackpos].localsw:= current_settings.localswitches;
+ switchesstatestack[switchesstatestackpos].verbosity:=status.verbosity;
+ Inc(switchesstatestackpos);
end;
procedure dir_rangechecks;
@@ -1434,5 +1409,5 @@ implementation
end;
begin
- localswitchesstackpos:= 0;
+ switchesstatestackpos:= 0;
end.
diff --git a/compiler/scanner.pas b/compiler/scanner.pas
index 31680f60e4..0919bb9904 100644
--- a/compiler/scanner.pas
+++ b/compiler/scanner.pas
@@ -332,11 +332,7 @@ implementation
if b then
begin
{ resolve all postponed switch changes }
- if localswitcheschanged then
- begin
- current_settings.localswitches:=nextlocalswitches;
- localswitcheschanged:=false;
- end;
+ flushpendingswitchesstate;
HandleModeSwitches(changeinit);
@@ -526,11 +522,7 @@ implementation
procedure dir_ifopt;
begin
- if localswitcheschanged then
- begin
- current_settings.localswitches:=nextlocalswitches;
- localswitcheschanged:=false;
- end;
+ flushpendingswitchesstate;
current_scanner.ifpreprocstack(pp_ifopt,@opt_check,scan_c_ifopt_found);
end;
@@ -3200,11 +3192,7 @@ In case not, the value returned can be arbitrary.
label
exit_label;
begin
- if localswitcheschanged then
- begin
- current_settings.localswitches:=nextlocalswitches;
- localswitcheschanged:=false;
- end;
+ flushpendingswitchesstate;
{ record tokens? }
if allowrecordtoken and
diff --git a/compiler/switches.pas b/compiler/switches.pas
index 6a90eac86d..31f7741a44 100644
--- a/compiler/switches.pas
+++ b/compiler/switches.pas
@@ -25,14 +25,23 @@ unit switches;
interface
+uses
+ globtype;
+
procedure HandleSwitch(switch,state:char);
function CheckSwitch(switch,state:char):boolean;
+procedure recordpendingverbosityswitch(sw: char; state: char);
+procedure recordpendinglocalswitch(sw: tlocalswitch; state: char);
+procedure recordpendinglocalfullswitch(const switches: tlocalswitches);
+procedure recordpendingverbosityfullswitch(verbosity: longint);
+procedure flushpendingswitchesstate;
implementation
uses
- globtype,systems,cpuinfo,
- globals,verbose,fmodule;
+ systems,cpuinfo,
+ globals,verbose,comphook,
+ fmodule;
{****************************************************************************
Main Switches Parsing
@@ -149,15 +158,7 @@ begin
unsupportedsw :
Message1(scan_w_unsupported_switch,'$'+switch);
localsw :
- begin
- if not localswitcheschanged then
- nextlocalswitches:=current_settings.localswitches;
- if state='+' then
- include(nextlocalswitches,tlocalswitch(setsw))
- else
- exclude(nextlocalswitches,tlocalswitch(setsw));
- localswitcheschanged:=true;
- end;
+ recordpendinglocalswitch(tlocalswitch(setsw),state);
modulesw :
begin
if current_module.in_global then
@@ -256,4 +257,64 @@ begin
end;
+procedure recordpendingverbosityswitch(sw: char; state: char);
+ begin
+ pendingstate.nextverbositystr:=pendingstate.nextverbositystr+sw+state;
+ end;
+
+
+procedure recordpendinglocalswitch(sw: tlocalswitch; state: char);
+ begin
+ if not pendingstate.localswitcheschanged then
+ pendingstate.nextlocalswitches:=current_settings.localswitches;
+ if state='-' then
+ exclude(pendingstate.nextlocalswitches,sw)
+ else if state='+' then
+ include(pendingstate.nextlocalswitches,sw)
+ else { state = '*' }
+ begin
+ if sw in init_settings.localswitches then
+ include(pendingstate.nextlocalswitches,sw)
+ else
+ exclude(pendingstate.nextlocalswitches,sw);
+ end;
+ pendingstate.localswitcheschanged:=true;
+ end;
+
+
+procedure recordpendinglocalfullswitch(const switches: tlocalswitches);
+ begin
+ pendingstate.nextlocalswitches:=switches;
+ pendingstate.localswitcheschanged:=true;
+ end;
+
+
+procedure recordpendingverbosityfullswitch(verbosity: longint);
+ begin
+ pendingstate.nextverbositystr:='';
+ pendingstate.nextverbosityfullswitch:=verbosity;
+ pendingstate.verbosityfullswitched:=true;
+ end;
+
+
+procedure flushpendingswitchesstate;
+ begin
+ if pendingstate.localswitcheschanged then
+ begin
+ current_settings.localswitches:=pendingstate.nextlocalswitches;
+ pendingstate.localswitcheschanged:=false;
+ end;
+ if pendingstate.verbosityfullswitched then
+ begin
+ status.verbosity:=pendingstate.nextverbosityfullswitch;
+ pendingstate.verbosityfullswitched:=false;
+ end;
+ if pendingstate.nextverbositystr<>'' then
+ begin
+ setverbosity(pendingstate.nextverbositystr);
+ pendingstate.nextverbositystr:='';
+ end;
+ end;
+
+
end.
diff --git a/compiler/verbose.pas b/compiler/verbose.pas
index 16f5c96564..20cf5efea1 100644
--- a/compiler/verbose.pas
+++ b/compiler/verbose.pas
@@ -579,26 +579,29 @@ implementation
'W':
begin
v:=v or V_Warning;
- if status.errorwarning then
- inc(status.errorcount)
- else
- inc(status.countWarnings);
+ if CheckVerbosity(V_Warning) then
+ if status.errorwarning then
+ inc(status.errorcount)
+ else
+ inc(status.countWarnings);
end;
'N' :
begin
v:=v or V_Note;
- if status.errornote then
- inc(status.errorcount)
- else
- inc(status.countNotes);
+ if CheckVerbosity(V_Note) then
+ if status.errornote then
+ inc(status.errorcount)
+ else
+ inc(status.countNotes);
end;
'H' :
begin
v:=v or V_Hint;
- if status.errorhint then
- inc(status.errorcount)
- else
- inc(status.countHints);
+ if CheckVerbosity(V_Hint) then
+ if status.errorhint then
+ inc(status.errorcount)
+ else
+ inc(status.countHints);
end;
'I' :
v:=v or V_Info;
diff --git a/tests/tbf/tb0074.pp b/tests/tbf/tb0074.pp
index 49c1231bff..9ba3505214 100644
--- a/tests/tbf/tb0074.pp
+++ b/tests/tbf/tb0074.pp
@@ -1,5 +1,5 @@
{ %FAIL }
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Old file: tbf0351.pp }
diff --git a/tests/tbf/tb0180.pp b/tests/tbf/tb0180.pp
index baceae9252..1fb9c39195 100644
--- a/tests/tbf/tb0180.pp
+++ b/tests/tbf/tb0180.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{$calling }
begin
diff --git a/tests/tbf/tb0182.pp b/tests/tbf/tb0182.pp
index 40eb43f4bf..a221e1a5d4 100644
--- a/tests/tbf/tb0182.pp
+++ b/tests/tbf/tb0182.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
{$T-}
diff --git a/tests/tbf/tb0183.pp b/tests/tbf/tb0183.pp
index de97acbd75..9569b91db2 100644
--- a/tests/tbf/tb0183.pp
+++ b/tests/tbf/tb0183.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
{$T-}
diff --git a/tests/tbf/tb0193.pp b/tests/tbf/tb0193.pp
index 3a8cc90437..b6373010b9 100644
--- a/tests/tbf/tb0193.pp
+++ b/tests/tbf/tb0193.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ %fail }
{$ifdef fpc}
diff --git a/tests/tbf/tb0195.pp b/tests/tbf/tb0195.pp
index 63a49c109d..1b35453f5e 100644
--- a/tests/tbf/tb0195.pp
+++ b/tests/tbf/tb0195.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
var
a: longint;
diff --git a/tests/tbf/tb0196.pp b/tests/tbf/tb0196.pp
index 5de8ca39b0..60dd091ee7 100644
--- a/tests/tbf/tb0196.pp
+++ b/tests/tbf/tb0196.pp
@@ -1,6 +1,6 @@
{ %norun }
{ %fail }
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
type
tr = record
diff --git a/tests/tbf/tb0197.pp b/tests/tbf/tb0197.pp
index e6a867298e..9f02a2e894 100644
--- a/tests/tbf/tb0197.pp
+++ b/tests/tbf/tb0197.pp
@@ -1,6 +1,6 @@
{ %norun }
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
type
tr = record
diff --git a/tests/tbf/tb0207.pp b/tests/tbf/tb0207.pp
index c7d9fec56b..0fd82d9037 100644
--- a/tests/tbf/tb0207.pp
+++ b/tests/tbf/tb0207.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ %fail }
{$mode objfpc}
procedure p(out o);
diff --git a/tests/tbf/tb0208.pp b/tests/tbf/tb0208.pp
index 9ae311d253..07037ffe8a 100644
--- a/tests/tbf/tb0208.pp
+++ b/tests/tbf/tb0208.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
procedure test;
var
diff --git a/tests/tbs/tb0271.pp b/tests/tbs/tb0271.pp
index 621fce29ba..5ec84de359 100644
--- a/tests/tbs/tb0271.pp
+++ b/tests/tbs/tb0271.pp
@@ -1,4 +1,4 @@
-{ %OPT= -Sen }
+{ %OPT= -Sen -vn }
{ Old file: tbs0317.pp }
diff --git a/tests/tbs/tb0287.pp b/tests/tbs/tb0287.pp
index b4e88712b4..c2fb98a8bb 100644
--- a/tests/tbs/tb0287.pp
+++ b/tests/tbs/tb0287.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sen }
+{ %OPT=-Sen -vn }
{ Old file: tbs0339.pp }
diff --git a/tests/tbs/tb0376.pp b/tests/tbs/tb0376.pp
index 5e14f8599a..baed4e879c 100644
--- a/tests/tbs/tb0376.pp
+++ b/tests/tbs/tb0376.pp
@@ -1,4 +1,4 @@
-{%OPT=-Sew}
+{%OPT=-Sew -vw}
{$mode objfpc}
function f: longint;
diff --git a/tests/tbs/tb0500.pp b/tests/tbs/tb0500.pp
index 3668775040..1f1140f816 100644
--- a/tests/tbs/tb0500.pp
+++ b/tests/tbs/tb0500.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Seh }
+{ %OPT=-Seh -vh }
program test;
uses math;
diff --git a/tests/tbs/tb0501.pp b/tests/tbs/tb0501.pp
index 3a99f98d19..4004708ed0 100644
--- a/tests/tbs/tb0501.pp
+++ b/tests/tbs/tb0501.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sen }
+{ %OPT=-Sen -vn }
{$mode objfpc}
diff --git a/tests/tbs/tb0502.pp b/tests/tbs/tb0502.pp
index 3b6877d7d2..3b80ec47f7 100644
--- a/tests/tbs/tb0502.pp
+++ b/tests/tbs/tb0502.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
type
TRegister = (
TRegisterLowEnum := Low(longint),
diff --git a/tests/tbs/tb0504.pp b/tests/tbs/tb0504.pp
index 1763f94c1f..bef01e36a0 100644
--- a/tests/tbs/tb0504.pp
+++ b/tests/tbs/tb0504.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{$T-}
diff --git a/tests/tbs/tb0522.pp b/tests/tbs/tb0522.pp
index f2b92a8fae..c51253623d 100644
--- a/tests/tbs/tb0522.pp
+++ b/tests/tbs/tb0522.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$ifdef fpc}
{$mode delphi}
diff --git a/tests/tbs/tb0525.pp b/tests/tbs/tb0525.pp
index b262242d6c..682ff7f54b 100644
--- a/tests/tbs/tb0525.pp
+++ b/tests/tbs/tb0525.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
type
tr = record
diff --git a/tests/tbs/tb0534.pp b/tests/tbs/tb0534.pp
index 521e5103d6..87c8945f0c 100644
--- a/tests/tbs/tb0534.pp
+++ b/tests/tbs/tb0534.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$mode objfpc}
diff --git a/tests/tbs/tb0542.pp b/tests/tbs/tb0542.pp
index a146727fa4..da752b64cd 100644
--- a/tests/tbs/tb0542.pp
+++ b/tests/tbs/tb0542.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
procedure t;
var
diff --git a/tests/test/cg/tcnvptr.pp b/tests/test/cg/tcnvptr.pp
index aca73ba096..79abebc9ed 100644
--- a/tests/test/cg/tcnvptr.pp
+++ b/tests/test/cg/tcnvptr.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-vw -Sew }
var
p : pointer;
diff --git a/tests/test/tfwork2.pp b/tests/test/tfwork2.pp
index cf14a8b3b4..089a488250 100644
--- a/tests/test/tfwork2.pp
+++ b/tests/test/tfwork2.pp
@@ -1,6 +1,6 @@
{ %target=linux,solaris,freebsd,win32 }
{ %fail }
-{ %opt=-Sew }
+{ %opt=-vw -Sew }
{ just some random non-darwin targets }
diff --git a/tests/test/tmainnam.pp b/tests/test/tmainnam.pp
index fa0fd2b787..8b00332c2d 100644
--- a/tests/test/tmainnam.pp
+++ b/tests/test/tmainnam.pp
@@ -1,6 +1,6 @@
{ %recompile }
{ %fail }
-{ %opt=-Sew -Cn }
+{ %opt=-vw -Sew -Cn }
uses umainnam;
diff --git a/tests/webtbf/tw0769b.pp b/tests/webtbf/tw0769b.pp
index d646ee5c60..03c11d24eb 100644
--- a/tests/webtbf/tw0769b.pp
+++ b/tests/webtbf/tw0769b.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
{ this should generate a warning
because s is not initialized }
diff --git a/tests/webtbf/tw0769c.pp b/tests/webtbf/tw0769c.pp
index 25d2f35d64..4008862fc4 100644
--- a/tests/webtbf/tw0769c.pp
+++ b/tests/webtbf/tw0769c.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
{ this should generate a warning
because s is not initialized }
diff --git a/tests/webtbf/tw10833a.pp b/tests/webtbf/tw10833a.pp
index ec52018f83..d0d9fd3395 100644
--- a/tests/webtbf/tw10833a.pp
+++ b/tests/webtbf/tw10833a.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
procedure p;experimental;
begin
diff --git a/tests/webtbf/tw10849.pp b/tests/webtbf/tw10849.pp
index 23de44ae67..7969ce5352 100644
--- a/tests/webtbf/tw10849.pp
+++ b/tests/webtbf/tw10849.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Se1w2 }
+{ %opt=-Se1w2 -vw }
var
pc: pchar;
diff --git a/tests/webtbf/tw11846.pp b/tests/webtbf/tw11846.pp
index 90d9011086..c8f56a7d7f 100644
--- a/tests/webtbf/tw11846.pp
+++ b/tests/webtbf/tw11846.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %NORUN }
{ %fail }
{$mode objfpc}
diff --git a/tests/webtbf/tw11846c.pp b/tests/webtbf/tw11846c.pp
index d528325a66..d859657e78 100644
--- a/tests/webtbf/tw11846c.pp
+++ b/tests/webtbf/tw11846c.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %NORUN }
{ %fail }
{$mode objfpc}
diff --git a/tests/webtbf/tw11848a.pp b/tests/webtbf/tw11848a.pp
index 88195187de..3c234e2ef2 100644
--- a/tests/webtbf/tw11848a.pp
+++ b/tests/webtbf/tw11848a.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %FAIL }
{$mode objfpc}{$H+}
diff --git a/tests/webtbf/tw11849a.pp b/tests/webtbf/tw11849a.pp
index e234486875..23dda7a12b 100644
--- a/tests/webtbf/tw11849a.pp
+++ b/tests/webtbf/tw11849a.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %fail }
{$mode objfpc}
procedure GiveMe(var i: integer);
diff --git a/tests/webtbf/tw12075.pp b/tests/webtbf/tw12075.pp
new file mode 100644
index 0000000000..aa051ddb1f
--- /dev/null
+++ b/tests/webtbf/tw12075.pp
@@ -0,0 +1,18 @@
+{ %fail }
+{ %opt=-Sew -vw-}
+
+{$mode macpas}
+program popwarnings;
+var
+ p: Pointer;
+ offs: PtrInt;
+ a: array[ 1..100] of integer;
+begin
+{$warnings on}
+ p:= @a;
+ offs:= SizeOf(integer);
+{$push}
+{$warnings off}
+{$pop}
+ PtrUInt(p):=PtrUInt(p) + offs;
+end.
diff --git a/tests/webtbf/tw2209.pp b/tests/webtbf/tw2209.pp
index ede96d5917..b88fec9a5c 100644
--- a/tests/webtbf/tw2209.pp
+++ b/tests/webtbf/tw2209.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ %fail }
{ Source provided for Free Pascal Bug Report 2209 }
diff --git a/tests/webtbf/tw2752.pp b/tests/webtbf/tw2752.pp
index db27063f3b..c1fa1e176c 100644
--- a/tests/webtbf/tw2752.pp
+++ b/tests/webtbf/tw2752.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2752 }
{ Submitted by "Micha" on 2003-10-26 }
diff --git a/tests/webtbf/tw3553.pp b/tests/webtbf/tw3553.pp
index 6f47572627..f801d1ad03 100644
--- a/tests/webtbf/tw3553.pp
+++ b/tests/webtbf/tw3553.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3553 }
{ Submitted by "Naj Kejah" on 2005-01-15 }
diff --git a/tests/webtbf/tw3562.pp b/tests/webtbf/tw3562.pp
index d3bf7c1da4..a1a8647692 100644
--- a/tests/webtbf/tw3562.pp
+++ b/tests/webtbf/tw3562.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
procedure p;
var
diff --git a/tests/webtbf/tw3631.pp b/tests/webtbf/tw3631.pp
index 4d1ff63d86..cd0eb48c94 100644
--- a/tests/webtbf/tw3631.pp
+++ b/tests/webtbf/tw3631.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
var
a : array[0..32] of byte;
diff --git a/tests/webtbf/tw3643.pp b/tests/webtbf/tw3643.pp
index d45b970f15..77ba61d4cd 100644
--- a/tests/webtbf/tw3643.pp
+++ b/tests/webtbf/tw3643.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3643 }
{ Submitted by "Naj Kejah" on 2005-02-08 }
diff --git a/tests/webtbf/tw4139.pp b/tests/webtbf/tw4139.pp
index a6c6a467b1..8752d0100c 100644
--- a/tests/webtbf/tw4139.pp
+++ b/tests/webtbf/tw4139.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 4139 }
{ Submitted by "Christian Iversen" on 2005-06-29 }
diff --git a/tests/webtbf/tw4737.pp b/tests/webtbf/tw4737.pp
index 37299c3037..7fbd1f63a0 100644
--- a/tests/webtbf/tw4737.pp
+++ b/tests/webtbf/tw4737.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %OPT=-CO -Sewnh -vh}
+{ %OPT=-CO -Sewnh -vwnh }
{ changed -Seh to -Sewnh because -Cr option
changes the hint into a warning PM }
diff --git a/tests/webtbf/tw8151b.pp b/tests/webtbf/tw8151b.pp
index baa3e587a3..af32514a84 100644
--- a/tests/webtbf/tw8151b.pp
+++ b/tests/webtbf/tw8151b.pp
@@ -1,4 +1,4 @@
-{ %opt=-Oodfa -Sew }
+{ %opt=-Oodfa -Sew -vw }
{ %fail }
{$IFDEF FPC}
{$mode delphi}
diff --git a/tests/webtbf/tw8151c.pp b/tests/webtbf/tw8151c.pp
index 0480fc6bec..986eaf53cb 100644
--- a/tests/webtbf/tw8151c.pp
+++ b/tests/webtbf/tw8151c.pp
@@ -1,4 +1,4 @@
-{ %opt=-Oodfa -Sew }
+{ %opt=-Oodfa -Sew -vw }
{ %fail }
{$IFDEF FPC}
{$mode delphi}
diff --git a/tests/webtbf/tw8264a.pp b/tests/webtbf/tw8264a.pp
index 6c454d5320..cb90253418 100644
--- a/tests/webtbf/tw8264a.pp
+++ b/tests/webtbf/tw8264a.pp
@@ -1,5 +1,5 @@
{ %fail }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$mode delphi}
diff --git a/tests/webtbs/tw0769.pp b/tests/webtbs/tw0769.pp
index 2b99dc4adc..5a39291e33 100644
--- a/tests/webtbs/tw0769.pp
+++ b/tests/webtbs/tw0769.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ this should generate no warning }
{$mode tp}
diff --git a/tests/webtbs/tw10736.pp b/tests/webtbs/tw10736.pp
index c59b8b8728..3ad4199b85 100644
--- a/tests/webtbs/tw10736.pp
+++ b/tests/webtbs/tw10736.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
unit tw10736;
diff --git a/tests/webtbs/tw10931.pp b/tests/webtbs/tw10931.pp
index 526f5900d1..c97532fa50 100644
--- a/tests/webtbs/tw10931.pp
+++ b/tests/webtbs/tw10931.pp
@@ -1,4 +1,4 @@
-{ %opt=-Cr -Sew }
+{ %opt=-Cr -Sew -vw }
var
a: PtrUInt;
diff --git a/tests/webtbs/tw11846a.pp b/tests/webtbs/tw11846a.pp
index 951fd4b9b3..81774483e1 100644
--- a/tests/webtbs/tw11846a.pp
+++ b/tests/webtbs/tw11846a.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %NORUN }
{$mode objfpc}
function Test(a: integer): boolean;
@@ -10,4 +10,4 @@ begin
end;
begin
-end. \ No newline at end of file
+end.
diff --git a/tests/webtbs/tw11846b.pp b/tests/webtbs/tw11846b.pp
index cbb5d9f9af..a6dac9d314 100644
--- a/tests/webtbs/tw11846b.pp
+++ b/tests/webtbs/tw11846b.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %NORUN }
{$mode objfpc}
function Test(a: integer): boolean;
diff --git a/tests/webtbs/tw11848.pp b/tests/webtbs/tw11848.pp
index 8d3c30b29e..f69fbae176 100644
--- a/tests/webtbs/tw11848.pp
+++ b/tests/webtbs/tw11848.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %NORUN }
{$mode objfpc}{$H+}
diff --git a/tests/webtbs/tw11849.pp b/tests/webtbs/tw11849.pp
index e6d4e5e751..ee8eb4bd68 100644
--- a/tests/webtbs/tw11849.pp
+++ b/tests/webtbs/tw11849.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew -Oodfa }
+{ %OPT=-Sew -vw -Oodfa }
{ %norun }
{$mode objfpc}
procedure GiveMe(out i: integer);
diff --git a/tests/webtbs/tw12050a.pp b/tests/webtbs/tw12050a.pp
index 8de966721b..3413024f3f 100644
--- a/tests/webtbs/tw12050a.pp
+++ b/tests/webtbs/tw12050a.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ %fail }
unit tw12050a;
diff --git a/tests/webtbs/tw12050b.pp b/tests/webtbs/tw12050b.pp
index 2fb12d8b42..8ea9c0f9f6 100644
--- a/tests/webtbs/tw12050b.pp
+++ b/tests/webtbs/tw12050b.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
unit tw12050b;
{$mode macpas}
diff --git a/tests/webtbs/tw12076.pp b/tests/webtbs/tw12076.pp
new file mode 100644
index 0000000000..1b96afa4f4
--- /dev/null
+++ b/tests/webtbs/tw12076.pp
@@ -0,0 +1,16 @@
+{ %opt=-vw -Sew }
+{ %norun }
+{$mode macpas}
+program nowarnings;
+var
+ p: Pointer;
+ offs: PtrInt;
+ a: array[ 1..100] of integer;
+begin
+{$warnings on}
+ p:= @a;
+ offs:= SizeOf(integer);
+{$warnings off}
+ PtrUInt(p):=PtrInt(p) + offs;
+{$warnings on}
+end.
diff --git a/tests/webtbs/tw12508a.pp b/tests/webtbs/tw12508a.pp
index 77304963c2..8109c9bdd5 100644
--- a/tests/webtbs/tw12508a.pp
+++ b/tests/webtbs/tw12508a.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
procedure test(a: longint);
var
diff --git a/tests/webtbs/tw1851.pp b/tests/webtbs/tw1851.pp
index 451f5f3d06..e0f7d81959 100644
--- a/tests/webtbs/tw1851.pp
+++ b/tests/webtbs/tw1851.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$mode objfpc}{$H+}
diff --git a/tests/webtbs/tw1948.pp b/tests/webtbs/tw1948.pp
index 9480052a72..6c0cce7e43 100644
--- a/tests/webtbs/tw1948.pp
+++ b/tests/webtbs/tw1948.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 1948 }
{ Submitted by "Sergey Kosarevsky" on 2002-04-27 }
diff --git a/tests/webtbs/tw2307.pp b/tests/webtbs/tw2307.pp
index 72c8cc911f..411ded5ec7 100644
--- a/tests/webtbs/tw2307.pp
+++ b/tests/webtbs/tw2307.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2307 }
{ Submitted by "Sergey Kosarevsky" on 2003-01-03 }
{ e-mail: netsurfer@au.ru }
diff --git a/tests/webtbs/tw2425.pp b/tests/webtbs/tw2425.pp
index 798f749894..19c721961d 100644
--- a/tests/webtbs/tw2425.pp
+++ b/tests/webtbs/tw2425.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sen }
+{ %OPT=-Sen -vn }
{ Source provided for Free Pascal Bug Report 2425 }
{ Submitted by "Marco van de Voort" on 2003-03-18 }
diff --git a/tests/webtbs/tw2435.pp b/tests/webtbs/tw2435.pp
index 031b4a549e..7f5b3b255b 100644
--- a/tests/webtbs/tw2435.pp
+++ b/tests/webtbs/tw2435.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2435 }
{ Submitted by "Louis Jean-Richard" on 2003-03-24 }
diff --git a/tests/webtbs/tw2438.pp b/tests/webtbs/tw2438.pp
index 6a02fe97ad..a5c355888c 100644
--- a/tests/webtbs/tw2438.pp
+++ b/tests/webtbs/tw2438.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2438 }
{ Submitted by "Armin Diehl" on 2003-03-25 }
diff --git a/tests/webtbs/tw2710.pp b/tests/webtbs/tw2710.pp
index bbe46d387f..eaba85bcaf 100644
--- a/tests/webtbs/tw2710.pp
+++ b/tests/webtbs/tw2710.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2710 }
{ Submitted by "Micha Nelissen" on 2003-10-04 }
diff --git a/tests/webtbs/tw2789.pp b/tests/webtbs/tw2789.pp
index 5f223adcc1..68bf931bdc 100644
--- a/tests/webtbs/tw2789.pp
+++ b/tests/webtbs/tw2789.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
Var B:Longint;
diff --git a/tests/webtbs/tw2815.pp b/tests/webtbs/tw2815.pp
index c918780d4b..5a2f7e3a27 100644
--- a/tests/webtbs/tw2815.pp
+++ b/tests/webtbs/tw2815.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2815 }
{ Submitted by "Mattias Gaertner" on 2003-11-30 }
diff --git a/tests/webtbs/tw2817.pp b/tests/webtbs/tw2817.pp
index e21f897d5a..3eaa7cb784 100644
--- a/tests/webtbs/tw2817.pp
+++ b/tests/webtbs/tw2817.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
{ Source provided for Free Pascal Bug Report 2817 }
{ Submitted by "Mattias Gaertner" on 2003-11-30 }
diff --git a/tests/webtbs/tw2832.pp b/tests/webtbs/tw2832.pp
index a48c712dd3..f3e7cb2f1f 100644
--- a/tests/webtbs/tw2832.pp
+++ b/tests/webtbs/tw2832.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2832 }
{ Submitted by "Mattias Gaertner" on 2003-12-05 }
diff --git a/tests/webtbs/tw2841.pp b/tests/webtbs/tw2841.pp
index 32d9c3e148..ef021a161c 100644
--- a/tests/webtbs/tw2841.pp
+++ b/tests/webtbs/tw2841.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 2841 }
{ Submitted by "Mattias Gaertner" on 2003-12-09 }
diff --git a/tests/webtbs/tw3172.pp b/tests/webtbs/tw3172.pp
index 0ea497a201..2111efa22f 100644
--- a/tests/webtbs/tw3172.pp
+++ b/tests/webtbs/tw3172.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
type
PUI32 = ^Longword;
diff --git a/tests/webtbs/tw3281.pp b/tests/webtbs/tw3281.pp
index 7f910c8106..3bf3b8cdc1 100644
--- a/tests/webtbs/tw3281.pp
+++ b/tests/webtbs/tw3281.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$ifdef fpc}{$mode objfpc}{$endif}
{$M+}
diff --git a/tests/webtbs/tw3364.pp b/tests/webtbs/tw3364.pp
index 02654a9424..c28e3d6d2d 100644
--- a/tests/webtbs/tw3364.pp
+++ b/tests/webtbs/tw3364.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3364 }
{ Submitted by "Sergey Kosarevsky" on 2004-10-22 }
diff --git a/tests/webtbs/tw3490.pp b/tests/webtbs/tw3490.pp
index 79b1527563..2b5bca0415 100644
--- a/tests/webtbs/tw3490.pp
+++ b/tests/webtbs/tw3490.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3490 }
{ Submitted by "Tomas Hajny" on 2004-12-29 }
diff --git a/tests/webtbs/tw3567.pp b/tests/webtbs/tw3567.pp
index e9acad55c7..a241116253 100644
--- a/tests/webtbs/tw3567.pp
+++ b/tests/webtbs/tw3567.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
(*$WEAKPACKAGEUNIT*)
(*$HPPEMIT '#include "some_include.h"' *)
diff --git a/tests/webtbs/tw3669.pp b/tests/webtbs/tw3669.pp
index 363cb0cf0d..8c06002af2 100644
--- a/tests/webtbs/tw3669.pp
+++ b/tests/webtbs/tw3669.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3669 }
{ Submitted by "Mattias Gaertner" on 2005-02-19 }
diff --git a/tests/webtbs/tw3952.pp b/tests/webtbs/tw3952.pp
index a9c167f288..ef124708eb 100644
--- a/tests/webtbs/tw3952.pp
+++ b/tests/webtbs/tw3952.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3952 }
{ Submitted by "Ivo Steinmann" on 2005-05-08 }
diff --git a/tests/webtbs/tw3970.pp b/tests/webtbs/tw3970.pp
index 8779825657..275e2b4aa8 100644
--- a/tests/webtbs/tw3970.pp
+++ b/tests/webtbs/tw3970.pp
@@ -1,4 +1,4 @@
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
{ Source provided for Free Pascal Bug Report 3970 }
{ Submitted by "Yiannis Dondos" on 2005-05-15 }
diff --git a/tests/webtbs/tw4006.pp b/tests/webtbs/tw4006.pp
index 8343939c6d..cf7c331318 100644
--- a/tests/webtbs/tw4006.pp
+++ b/tests/webtbs/tw4006.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{ Source provided for Free Pascal Bug Report 4006 }
{ Submitted by "Torsten Kildal" on 2005-05-23 }
diff --git a/tests/webtbs/tw4043.pp b/tests/webtbs/tw4043.pp
index 52ad137b26..5ef8a022bc 100644
--- a/tests/webtbs/tw4043.pp
+++ b/tests/webtbs/tw4043.pp
@@ -1,5 +1,5 @@
{ %target=win32 }
-{ %OPT=-Sew }
+{ %OPT=-Sew -vw }
uses
windows;
diff --git a/tests/webtbs/tw4068.pp b/tests/webtbs/tw4068.pp
index 7a40338001..a8ca04b331 100644
--- a/tests/webtbs/tw4068.pp
+++ b/tests/webtbs/tw4068.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
{ Source provided for Free Pascal Bug Report 4068 }
{ Submitted by "David Butler" on 2005-06-12 }
diff --git a/tests/webtbs/tw4330.pp b/tests/webtbs/tw4330.pp
index 260408ad4b..f7fc19e686 100644
--- a/tests/webtbs/tw4330.pp
+++ b/tests/webtbs/tw4330.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$A+}
{$A-}
diff --git a/tests/webtbs/tw4332.pp b/tests/webtbs/tw4332.pp
index 20d76f50f1..06f196d689 100644
--- a/tests/webtbs/tw4332.pp
+++ b/tests/webtbs/tw4332.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$W+}
{$W-}
diff --git a/tests/webtbs/tw4954.pp b/tests/webtbs/tw4954.pp
index 85aa4d058a..af865ce53b 100644
--- a/tests/webtbs/tw4954.pp
+++ b/tests/webtbs/tw4954.pp
@@ -1,5 +1,5 @@
{ %NORUN }
-{ %OPT=-Seh }
+{ %OPT=-Seh -vh }
program aFP211r; { false hints on varrec }
diff --git a/tests/webtbs/tw5100.pp b/tests/webtbs/tw5100.pp
index eb898fa7b9..c35697a4aa 100644
--- a/tests/webtbs/tw5100.pp
+++ b/tests/webtbs/tw5100.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %OPT=-Sen }
+{ %OPT=-Sen -vn }
unit tw5100;
diff --git a/tests/webtbs/tw5100a.pp b/tests/webtbs/tw5100a.pp
index 95ca408a00..b5595cadf9 100644
--- a/tests/webtbs/tw5100a.pp
+++ b/tests/webtbs/tw5100a.pp
@@ -1,5 +1,5 @@
{ %norun }
-{ %OPT=-Sen }
+{ %OPT=-Sen -vn }
{ %fail }
unit tw5100a;
diff --git a/tests/webtbs/tw7179.pp b/tests/webtbs/tw7179.pp
index 039361ac0f..9284eda393 100644
--- a/tests/webtbs/tw7179.pp
+++ b/tests/webtbs/tw7179.pp
@@ -1,4 +1,4 @@
-{ %opt=-Seh }
+{ %opt=-Seh -vh }
{$mode delphi}
program TestMismatch;
diff --git a/tests/webtbs/tw7285.pp b/tests/webtbs/tw7285.pp
index ae61a75285..a045919e32 100644
--- a/tests/webtbs/tw7285.pp
+++ b/tests/webtbs/tw7285.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sehw -S2 }
+{ %opt=-Sehw -vwh -S2 }
type myclass=class(TObject)
procedure myproc();
diff --git a/tests/webtbs/tw7808.pp b/tests/webtbs/tw7808.pp
index ed371e5f26..a6484b529a 100644
--- a/tests/webtbs/tw7808.pp
+++ b/tests/webtbs/tw7808.pp
@@ -1,6 +1,6 @@
{ %cpu=i386 }
{ %target=go32v2,linux,freebsd,win32}
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$mode delphi}
diff --git a/tests/webtbs/tw8090.pp b/tests/webtbs/tw8090.pp
index dd022fa217..f21755cd8d 100644
--- a/tests/webtbs/tw8090.pp
+++ b/tests/webtbs/tw8090.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
program notusedbug;
{$mode objfpc}{$H+}
diff --git a/tests/webtbs/tw8151a.pp b/tests/webtbs/tw8151a.pp
index 02e53f0943..6a78dbff3c 100644
--- a/tests/webtbs/tw8151a.pp
+++ b/tests/webtbs/tw8151a.pp
@@ -1,4 +1,4 @@
-{ %opt=-Oodfa -Sew }
+{ %opt=-Oodfa -Sew -vw }
{ %norun }
{$IFDEF FPC}
{$mode delphi}
diff --git a/tests/webtbs/tw8264.pp b/tests/webtbs/tw8264.pp
index c8b3919f48..64929577c9 100644
--- a/tests/webtbs/tw8264.pp
+++ b/tests/webtbs/tw8264.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sen }
+{ %opt=-Sen -vn }
{$mode delphi}
function calclength1(const s1: shortstring): integer;
diff --git a/tests/webtbs/tw8282.pp b/tests/webtbs/tw8282.pp
index cc6a219cdc..7f2bbb026b 100644
--- a/tests/webtbs/tw8282.pp
+++ b/tests/webtbs/tw8282.pp
@@ -1,4 +1,4 @@
-{ %opt=-O2 -Sew }
+{ %opt=-O2 -Sew -vw }
{$inline on}
diff --git a/tests/webtbs/tw9072.pp b/tests/webtbs/tw9072.pp
index a76e72fc13..116ed562a7 100644
--- a/tests/webtbs/tw9072.pp
+++ b/tests/webtbs/tw9072.pp
@@ -1,4 +1,4 @@
-{ %opt=-Sew }
+{ %opt=-Sew -vw }
{$mode tp}