mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-26 05:11:37 +01:00 
			
		
		
		
	* procvar is not compared in addrn
This commit is contained in:
		
							parent
							
								
									4290586968
								
							
						
					
					
						commit
						18b1a27d2c
					
				| @ -378,10 +378,14 @@ implementation | ||||
|                     begin | ||||
|                       if Tprocsym(symtableentry).procdef_count>1 then | ||||
|                        CGMessage(parser_e_no_overloaded_procvars); | ||||
|                       resulttype.setdef(tprocsym(symtableentry).first_procdef); | ||||
|                     end | ||||
|                       procdef:=tprocsym(symtableentry).first_procdef; | ||||
|                     end; | ||||
| 
 | ||||
|                    { Delphi returns Pointer as type } | ||||
|                    if not(m_tp_procvar in aktmodeswitches) then | ||||
|                     resulttype.setdef(procdef) | ||||
|                    else | ||||
|                     resulttype.setdef(procdef); | ||||
|                     resulttype:=voidpointertype; | ||||
| 
 | ||||
|                    { process methodpointer } | ||||
|                    if assigned(left) then | ||||
| @ -474,6 +478,7 @@ implementation | ||||
|                    { method pointer ? } | ||||
|                    if assigned(left) then | ||||
|                      begin | ||||
|                         expectloc:=LOC_CREFERENCE; | ||||
|                         firstpass(left); | ||||
|                         registers32:=max(registers32,left.registers32); | ||||
|                         registersfpu:=max(registersfpu,left.registersfpu); | ||||
| @ -1259,7 +1264,10 @@ begin | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.84  2003-04-22 23:50:23  peter | ||||
|   Revision 1.85  2003-04-23 10:10:54  peter | ||||
|     * procvar is not compared in addrn | ||||
| 
 | ||||
|   Revision 1.84  2003/04/22 23:50:23  peter | ||||
|     * firstpass uses expectloc | ||||
|     * checks if there are differences between the expectloc and | ||||
|       location.loc from secondpass in EXTDEBUG | ||||
|  | ||||
| @ -401,10 +401,18 @@ implementation | ||||
|             if not(m_tp_procvar in aktmodeswitches) then | ||||
|               begin | ||||
|                  if assigned(getprocvardef) then | ||||
|                   hp3:=getprocvardef | ||||
|                   begin | ||||
|                     hp3:=tprocsym(tloadnode(left).symtableentry).search_procdef_byprocvardef(getprocvardef); | ||||
|                     if not assigned(hp3)  then | ||||
|                      begin | ||||
|                        CGMessage2(type_e_incompatible_types,tprocsym(tloadnode(left).symtableentry).first_procdef.typename,getprocvardef.typename); | ||||
|                        exit; | ||||
|                      end; | ||||
|                   end | ||||
|                  else | ||||
|                   hp3:=tabstractprocdef(tprocsym(tloadnode(left).symtableentry).first_procdef); | ||||
| 
 | ||||
| 
 | ||||
|                  { create procvardef } | ||||
|                  resulttype.setdef(tprocvardef.create); | ||||
|                  tprocvardef(resulttype.def).proctypeoption:=hp3.proctypeoption; | ||||
| @ -1052,7 +1060,10 @@ begin | ||||
| end. | ||||
| { | ||||
|   $Log$ | ||||
|   Revision 1.48  2003-04-22 23:50:23  peter | ||||
|   Revision 1.49  2003-04-23 10:10:54  peter | ||||
|     * procvar is not compared in addrn | ||||
| 
 | ||||
|   Revision 1.48  2003/04/22 23:50:23  peter | ||||
|     * firstpass uses expectloc | ||||
|     * checks if there are differences between the expectloc and | ||||
|       location.loc from secondpass in EXTDEBUG | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 peter
						peter