|  | @@ -1368,17 +1368,18 @@ implementation
 | 
											
												
													
														|  |                    taddnode(left).left.isequal(tcallparanode(tinlinenode(p).left).left) and
 |  |                    taddnode(left).left.isequal(tcallparanode(tinlinenode(p).left).left) and
 | 
											
												
													
														|  |                    not(assigned(tcallparanode(tinlinenode(p).left).right)) then
 |  |                    not(assigned(tcallparanode(tinlinenode(p).left).right)) then
 | 
											
												
													
														|  |                    begin
 |  |                    begin
 | 
											
												
													
														|  | -                    result:=cifnode.create_internal(left.getcopy,getcopy,nil);
 |  | 
 | 
											
												
													
														|  | -                    include(twhilerepeatnode(tifnode(result).right).loopflags,lnf_checknegate);
 |  | 
 | 
											
												
													
														|  | -                    exclude(twhilerepeatnode(tifnode(result).right).loopflags,lnf_testatbegin);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    result:=cifnode.create_internal(left.getcopy,cwhilerepeatnode.create(left,right,false,true),nil);
 | 
											
												
													
														|  | 
 |  | +                    left:=nil;
 | 
											
												
													
														|  | 
 |  | +                    right:=nil;
 | 
											
												
													
														|  |                      twhilerepeatnode(tifnode(result).right).left.nodetype:=equaln;
 |  |                      twhilerepeatnode(tifnode(result).right).left.nodetype:=equaln;
 | 
											
												
													
														|  |                    end;
 |  |                    end;
 | 
											
												
													
														|  |                end
 |  |                end
 | 
											
												
													
														|  |              else if not(cs_opt_size in current_settings.optimizerswitches) and
 |  |              else if not(cs_opt_size in current_settings.optimizerswitches) and
 | 
											
												
													
														|  |                (node_complexity(left)<=3) then
 |  |                (node_complexity(left)<=3) then
 | 
											
												
													
														|  |                begin
 |  |                begin
 | 
											
												
													
														|  | -                result:=cifnode.create_internal(left.getcopy,getcopy,nil);
 |  | 
 | 
											
												
													
														|  | -                exclude(twhilerepeatnode(tifnode(result).right).loopflags,lnf_testatbegin);
 |  | 
 | 
											
												
													
														|  | 
 |  | +                result:=cifnode.create_internal(left.getcopy,cwhilerepeatnode.create(left,right,false,false),nil);
 | 
											
												
													
														|  | 
 |  | +                left:=nil;
 | 
											
												
													
														|  | 
 |  | +                right:=nil;
 | 
											
												
													
														|  |                end;
 |  |                end;
 | 
											
												
													
														|  |            end;
 |  |            end;
 | 
											
												
													
														|  |        end;
 |  |        end;
 |