mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-31 09:11:53 +01:00 
			
		
		
		
	* don't range pointers converted to arrays, resolves #8191
git-svn-id: trunk@8900 -
This commit is contained in:
		
							parent
							
								
									6b8466633e
								
							
						
					
					
						commit
						ae79ef2cb5
					
				
							
								
								
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitattributes
									
									
									
									
										vendored
									
									
								
							| @ -8384,6 +8384,7 @@ tests/webtbs/tw8177a.pp -text | ||||
| tests/webtbs/tw8180.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8183.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8187.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8191.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8195a.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8195b.pp svneol=native#text/plain | ||||
| tests/webtbs/tw8199.pp svneol=native#text/plain | ||||
|  | ||||
| @ -720,7 +720,8 @@ implementation | ||||
|                   begin | ||||
|                      if not(is_open_array(left.resultdef)) and | ||||
|                         not(is_array_of_const(left.resultdef)) and | ||||
|                         not(is_dynamic_array(left.resultdef)) then | ||||
|                         not(is_dynamic_array(left.resultdef)) and | ||||
|                         not(ado_isconvertedpointer in tarraydef(left.resultdef).arrayoptions) then | ||||
|                        begin | ||||
|                           if (tordconstnode(right).value.svalue>tarraydef(left.resultdef).highrange) or | ||||
|                              (tordconstnode(right).value.svalue<tarraydef(left.resultdef).lowrange) then | ||||
|  | ||||
							
								
								
									
										37
									
								
								tests/webtbs/tw8191.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								tests/webtbs/tw8191.pp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,37 @@ | ||||
| program PCharRangeChecking; | ||||
| 
 | ||||
| {$APPTYPE CONSOLE} | ||||
| 
 | ||||
| {$ifdef fpc} | ||||
|   {$mode delphi} | ||||
| {$endif} | ||||
| 
 | ||||
| {$R+} | ||||
| 
 | ||||
| function Test: Boolean; | ||||
| var | ||||
|   s: shortstring; | ||||
|   p: PChar; | ||||
| begin | ||||
|   s := '1234567890'; | ||||
|   p := PChar(@s[1]); | ||||
|   Inc(p,4); | ||||
| 
 | ||||
|   Result := | ||||
|    (p[-4] = '1') and | ||||
|    (p[-3] = '2') and | ||||
|    (p[-2] = '3') and | ||||
|    (p[-1] = '4') and | ||||
|    (p[ 0] = '5') and | ||||
|    (p[ 1] = '6') and | ||||
|    (p[ 2] = '7') and | ||||
|    (p[ 3] = '8') and | ||||
|    (p[ 4] = '9') and | ||||
|    (p[ 5] = '0'); | ||||
| end; | ||||
| 
 | ||||
| begin | ||||
|   if not Test then | ||||
|     halt(1); | ||||
|   WriteLn('ok'); | ||||
| end. | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 florian
						florian