Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e716ac6b6b 
							
						 
					 
					
						
						
							
							* give ord->formaldef again a higher precedence than ord->floatdef  
						
						... 
						
						
						
						(last convert level that is added, needs a more structural
     solution)
git-svn-id: trunk@9057 - 
						
					 
					
						2007-11-02 11:17:11 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							82a0749970 
							
						 
					 
					
						
						
							
							* prefer non-matching orddef conversions to orddef-to-pointer conversions  
						
						... 
						
						
						
						(mantis #10002 ) and also to orddef-to-real conversions
    (delphi-compatible). More tests and fixes will follow later.
git-svn-id: trunk@9015 - 
						
					 
					
						2007-10-31 17:20:37 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							5bc156efea 
							
						 
					 
					
						
						
							
							* always demote type conversions which cannot represent part of the  
						
						... 
						
						
						
						source value to convert_l3, instead of only those with a destination
    type whose size is < source size (like Delphi) + test -> fixes
    toperator6 along with a host of wrong tordconst typeconversions in
    the compiler sources themselves (although most are harmless)
git-svn-id: trunk@8323 - 
						
					 
					
						2007-08-28 19:38:40 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							6e0a7bb0eb 
							
						 
					 
					
						
						
							
							* Nil constants that are type converted to a method procvar are now  
						
						... 
						
						
						
						properly converted. The conversion is done at runtime to generate
    a two pointer memory reference as result location, something
    which the code generator can handle very well, which minimizes
    the chance of side effects.
git-svn-id: trunk@7978 - 
						
					 
					
						2007-07-07 20:57:05 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							76a3d55199 
							
						 
					 
					
						
						
							
							*  allow enum => pointer type casts in delphi mode,  resolves   #8465  
						
						... 
						
						
						
						git-svn-id: trunk@7905 - 
						
					 
					
						2007-07-01 14:43:46 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							504d845e86 
							
						 
					 
					
						
						
							
							* Consider conversion from integer to integer te_equal, if the base types  
						
						... 
						
						
						
						are equal and the range of the from type fits in the to type. I.e.
    conversion from -10..10 to shortint is considered equal. This is correct
    because in this case, the from type can be used wherever the to type is
    used, i.e. the compiler never needs to do conversion at compile or run
    time.
git-svn-id: trunk@7814 - 
						
					 
					
						2007-06-25 20:57:21 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							70284da435 
							
						 
					 
					
						
						
							
							* allow <any ordinal>(class/interface) type casts likewise it is allowed for class references and pointers  
						
						... 
						
						
						
						git-svn-id: trunk@7811 - 
						
					 
					
						2007-06-25 20:08:34 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							ba95cc22ee 
							
						 
					 
					
						
						
							
							* only allow automatic type conversions of array constructors of  
						
						... 
						
						
						
						char to pchar/array of char, rather than of arbitrary array
    constructors (mantis #9085 )
git-svn-id: trunk@7670 - 
						
					 
					
						2007-06-15 17:16:44 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							c7037df254 
							
						 
					 
					
						
						
							
							+ classrefdef is assignment compatible to pointers in delphi mode  
						
						... 
						
						
						
						git-svn-id: trunk@7648 - 
						
					 
					
						2007-06-13 20:21:33 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							9adb202a92 
							
						 
					 
					
						
						
							
							* Rework the constexprint to allow operations from low(int64) to high(qword).  
						
						... 
						
						
						
						+ Some initial work on a formaldef which also carries the typinfo of a parameter.
git-svn-id: trunk@7639 - 
						
					 
					
						2007-06-13 07:41:18 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							6555f37cff 
							
						 
					 
					
						
						
							
							* do not search variant operators when looking for an overloaded  
						
						... 
						
						
						
						operator for a non-variant type (was already intended that way,
    but checks didn't work) (mantis #7070 ) + tests
  * some tab->spaces in defcmp.pas
git-svn-id: trunk@7359 - 
						
					 
					
						2007-05-16 13:59:35 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							45cda67f3f 
							
						 
					 
					
						
						
							
							+ first basically working (not all node types yet) dfa implementation determining life information  
						
						... 
						
						
						
						git-svn-id: trunk@7294 - 
						
					 
					
						2007-05-06 21:33:39 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							9a0f769b2f 
							
						 
					 
					
						
						
							
							* cleaned up set conversion  
						
						... 
						
						
						
						* fixed conversion of var sets
git-svn-id: trunk@6644 - 
						
					 
					
						2007-02-25 16:29:39 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							f7a6c1e2ee 
							
						 
					 
					
						
						
							
							* only allow pointer(integer) in fpc modes  
						
						... 
						
						
						
						git-svn-id: trunk@6598 - 
						
					 
					
						2007-02-22 07:01:47 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							9a37c04131 
							
						 
					 
					
						
						
							
							* cardinal-cardinal is calculated using int64  
						
						... 
						
						
						
						* support pointer(int64) for all modes, this is needed to
    support pointer(cardinal+longint) and pointer(cardinal-cardinal)
git-svn-id: trunk@6586 - 
						
					 
					
						2007-02-21 11:52:06 +00:00 
						 
				 
			
				
					
						
							
							
								yury 
							
						 
					 
					
						
						
						
						
							
						
						
							48e46f1c2e 
							
						 
					 
					
						
						
							
							* Fixed error "Incompatible type for arg no. X: Got "Array Of Char", expected "Array Of PChar"" when passing values like ['1','2','3'] for "array of PChar" parameter.  
						
						... 
						
						
						
						+ Test added.
git-svn-id: trunk@6495 - 
						
					 
					
						2007-02-15 19:43:35 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							a2ec2e72b6 
							
						 
					 
					
						
						
							
							* better hint about abstract methods (fixes 5098)  
						
						... 
						
						
						
						+ code generation for invoking dispinterface methods
* small dispinterface problems fixed
git-svn-id: trunk@5798 - 
						
					 
					
						2007-01-03 19:14:31 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							2b9bdf2155 
							
						 
					 
					
						
						
							
							* fixed mantis 6631, 7322 and 7989: check parameters and return  
						
						... 
						
						
						
						types of interface methods implemented in a class
git-svn-id: trunk@5686 - 
						
					 
					
						2006-12-22 19:50:52 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							658c46b903 
							
						 
					 
					
						
						
							
							* remove tdictionary and tindexarray  
						
						... 
						
						
						
						* symtables based on TFPHashObjectList and TFPObjectList
  * rename torddef.typ to torddef.ordtype
  * rename tfloatdef.typ to tfloatdef.floattype
  * rename tdef.deftype to tdef.typ
  * remove obsolete browser code, browcol is kept so the ide
    can still be compiled
git-svn-id: trunk@5192 - 
						
					 
					
						2006-11-03 00:30:30 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							d87f03eef5 
							
						 
					 
					
						
						
							
							- removed automatic int-string, string-int and int-array conversion for  
						
						... 
						
						
						
						macpas after discussion on macpascal mailing list. The only thing left
    is automatic conversion of constant strings of length 4 to 32 bit ints.
  * adapted tests to this
  * fixed FOUR_CHAR_CODE and FCC functions in MacPas unit for little
    endian
  + FourCharArray type in macpas unit wich can be used to typecast
    int's "back" to an array[1..4] of char (though the characters
    will be in reverse on little endian systems in that case)
git-svn-id: trunk@5154 - 
						
					 
					
						2006-11-01 16:34:37 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							136d3e8d46 
							
						 
					 
					
						
						
							
							* refactor implemented interfaces  
						
						... 
						
						
						
						git-svn-id: trunk@5134 - 
						
					 
					
						2006-10-31 22:38:49 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							5c9b39549a 
							
						 
					 
					
						
						
							
							* fixed olevariant -> variant conversion  
						
						... 
						
						
						
						git-svn-id: trunk@5131 - 
						
					 
					
						2006-10-31 19:45:08 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							85d63d9fa9 
							
						 
					 
					
						
						
							
							* settings refactored  
						
						... 
						
						
						
						git-svn-id: trunk@5094 - 
						
					 
					
						2006-10-30 18:02:58 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							3078a1927f 
							
						 
					 
					
						
						
							
							* remove ttype  
						
						... 
						
						
						
						* rename old ttype variables *type to *def
  * rename resulttypepass to pass_typecheck
  * rename pass_2 to pass_generate_code
git-svn-id: trunk@5077 - 
						
					 
					
						2006-10-29 22:19:39 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							2dd6a91a9f 
							
						 
					 
					
						
						
							
							+ allow implicit type conversions of 4 byte integers to strings for  
						
						... 
						
						
						
						parameter matching in macpas mode
git-svn-id: trunk@4957 - 
						
					 
					
						2006-10-18 18:14:54 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6fa1b27add 
							
						 
					 
					
						
						
							
							* openarray to openarray should still be equal for parameters  
						
						... 
						
						
						
						git-svn-id: trunk@4755 - 
						
					 
					
						2006-09-30 10:21:18 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							0ddab0c161 
							
						 
					 
					
						
						
							
							* add cdo_parameter option for def_compare_ext that indicates that we  
						
						... 
						
						
						
						are comparing parameter lists
  * openarray and normal array are not compatible anymore when comparing
    parameters
git-svn-id: trunk@4754 - 
						
					 
					
						2006-09-30 09:59:46 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							47eb589d54 
							
						 
					 
					
						
						
							
							* allow implicit conversions from/to packed char arrays under the  
						
						... 
						
						
						
						same conditions as from/two regular char arrays (since a packed
    char array is the same as a string in ISO Pascal)
git-svn-id: trunk@4468 - 
						
					 
					
						2006-08-20 15:14:07 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							9e66674ff9 
							
						 
					 
					
						
						
							
							+ first part of qwordbool implementation  
						
						... 
						
						
						
						git-svn-id: trunk@4462 - 
						
					 
					
						2006-08-19 23:16:17 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							eccbc78e04 
							
						 
					 
					
						
						
							
							+ support for bitpacked arrays:  
						
						... 
						
						
						
						+ use {$bitpacking on/+} to change the meaning of "packed"
      into "bitpacked" for arrays. This is the default for MacPas.
      You can also define individual arrays as "bitpacked", but
      this is not encouraged since this keyword is not known by
      other compilers and therefore makes your code unportable.
    + pack(unpackedarray,index,packedarray) to pack
      length(packedarray) elements starting at
      unpackedarray[index] into packedarray.
    + unpack(packedarray,unpackedarray,index) to unpack
      packedarray into unpackedarray, with the first
      element being stored at unpackedarray[index]
  * todo:
    * "open packed arrays" and rtti for packed arrays are not
      yet supported
    * gdb does not properly support bitpacked arrays
git-svn-id: trunk@4449 - 
						
					 
					
						2006-08-19 12:54:12 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							ac673f392c 
							
						 
					 
					
						
						
							
							* typo in previous commit  
						
						... 
						
						
						
						git-svn-id: trunk@4392 - 
						
					 
					
						2006-08-07 21:14:16 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							4bde345009 
							
						 
					 
					
						
						
							
							* fix check for openarray and single element  
						
						... 
						
						
						
						git-svn-id: trunk@4390 - 
						
					 
					
						2006-08-07 20:36:18 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							a704cbf048 
							
						 
					 
					
						
						
							
							* never prefer conversion to formaldef  
						
						... 
						
						
						
						git-svn-id: trunk@4387 - 
						
					 
					
						2006-08-07 19:50:52 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							38c0ae73da 
							
						 
					 
					
						
						
							
							Merged revisions 2775,2788-2789 via svnmerge from  
						
						... 
						
						
						
						http://svn.freepascal.org/svn/fpc/branches/linker/compiler 
........
r2775 | peter | 2006-03-05 22:43:30 +0100 (Sun, 05 Mar 2006) | 2 lines
  * merge ppu changes to keep ppus the same
........
r2788 | peter | 2006-03-06 12:59:14 +0100 (Mon, 06 Mar 2006) | 2 lines
  * Add TFPList and TFPObjectList
........
r2789 | peter | 2006-03-06 13:01:37 +0100 (Mon, 06 Mar 2006) | 2 lines
  * fix powerpc
........
git-svn-id: trunk@2790 - 
					
						2006-03-06 12:04:44 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							92c389aaeb 
							
						 
					 
					
						
						
							
							* fixed web bug  #4778  (explicit type casting of float to int in tp/delphi  
						
						... 
						
						
						
						keeps the bit pattern instead of converting)
git-svn-id: trunk@2509 - 
						
					 
					
						2006-02-10 11:05:47 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							45176ea2a8 
							
						 
					 
					
						
						
							
							* split tstringtype for stringdef and stringconstnode  
						
						... 
						
						
						
						to prevent wrong typecasts
git-svn-id: trunk@2276 - 
						
					 
					
						2006-01-13 17:20:27 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							95879fe8a7 
							
						 
					 
					
						
						
							
							* basic support for generic classes  
						
						... 
						
						
						
						git-svn-id: trunk@2020 - 
						
					 
					
						2005-12-21 10:11:15 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							f9db030350 
							
						 
					 
					
						
						
							
							* fix overload choosing if both normal proc and proc of object are available  
						
						... 
						
						
						
						git-svn-id: trunk@1496 - 
						
					 
					
						2005-10-19 07:56:08 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							09a0dff4da 
							
						 
					 
					
						
						
							
							* prefer object->object over object->intf  
						
						... 
						
						
						
						git-svn-id: trunk@1491 - 
						
					 
					
						2005-10-19 06:36:10 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							adfd36d189 
							
						 
					 
					
						
						
							
							* allow conststring to array of widechar  
						
						... 
						
						
						
						git-svn-id: trunk@1471 - 
						
					 
					
						2005-10-18 12:27:43 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							89297d2c39 
							
						 
					 
					
						
						
							
							* move all stabs ($ifdef gdb) code to dbgstabs  
						
						... 
						
						
						
						git-svn-id: trunk@1255 - 
						
					 
					
						2005-10-02 11:17:05 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							edf553a223 
							
						 
					 
					
						
						
							
							* string constants are now array of char until  
						
						... 
						
						
						
						they are converted to a specific string type
git-svn-id: trunk@1254 - 
						
					 
					
						2005-10-02 11:08:58 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							f4c15f16bf 
							
						 
					 
					
						
						
							
							* overload choosing for ansistring -> short/wide  
						
						... 
						
						
						
						git-svn-id: trunk@983 - 
						
					 
					
						2005-08-30 06:55:10 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							da8c55b019 
							
						 
					 
					
						
						
							
							* overload choosing for array of char to widestring fixed  
						
						... 
						
						
						
						git-svn-id: trunk@979 - 
						
					 
					
						2005-08-30 05:42:11 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							a24dc41f36 
							
						 
					 
					
						
						
							
							* don't prefer int const to pointer  
						
						... 
						
						
						
						git-svn-id: trunk@700 - 
						
					 
					
						2005-07-19 12:22:32 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							86bf41f689 
							
						 
					 
					
						
						
							
							* prefer shortstring to ansistring over ansistring to shortstring  
						
						... 
						
						
						
						* don't prefer widestring to short/ansistring
git-svn-id: trunk@594 - 
						
					 
					
						2005-07-06 13:09:50 +00:00 
						 
				 
			
				
					
						
							
							
								fpc 
							
						 
					 
					
						
						
						
						
							
						
						
							790a4fe2d3 
							
						 
					 
					
						
						
							
							* log and id tags removed  
						
						... 
						
						
						
						git-svn-id: trunk@42 - 
						
					 
					
						2005-05-21 09:42:41 +00:00 
						 
				 
			
				
					
						
							
							
								fpc 
							
						 
					 
					
						
						
						
						
							
						
						
							50778076c3 
							
						 
					 
					
						
						
							
							initial import  
						
						... 
						
						
						
						git-svn-id: trunk@1 - 
						
					 
					
						2005-05-16 18:37:41 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							218930cf11 
							
						 
					 
					
						
						
							
							* support open array to pointer  
						
						
						
					 
					
						2005-04-04 16:30:07 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							a96693cee1 
							
						 
					 
					
						
						
							
							support (wide)char to pwidechar  
						
						
						
					 
					
						2005-03-28 15:19:18 +00:00