paul 
							
						 
					 
					
						
						
						
						
							
						
						
							1b614b526a 
							
						 
					 
					
						
						
							
							compiler:  
						
						... 
						
						
						
						- add own symbol table for enumeration to store enumeration elements
  - reimplement enumeration member traverse using symbol table instead of firstenum/nextenum - that members are removed
  - implement TEnum.Element access syntax - element is searched in the enumeration symtable in this case instead of global/local symtables
  - implement {$SCOPEDENUM ON/OFF} local switch
  + tests
git-svn-id: trunk@15051 - 
						
					 
					
						2010-03-25 05:46:53 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							448f3d99c1 
							
						 
					 
					
						
						
							
							* cleanup of case <string> of code by Sergei Gorelkin,  resolves   #13700  
						
						... 
						
						
						
						git-svn-id: trunk@14467 - 
						
					 
					
						2009-12-23 19:27:50 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							44aed2af60 
							
						 
					 
					
						
						
							
							o patch by Michael Denisenko,  resolves   #14734 :  
						
						... 
						
						
						
						* fixes memory leaks in case of string code
  * replace usage of strcmp
  * improved tests
git-svn-id: trunk@13830 - 
						
					 
					
						2009-10-09 20:40:22 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							cf215d5097 
							
						 
					 
					
						
						
							
							o patch by Michael V. Denisenko to handle case <string> of (see also  #13700 )  
						
						... 
						
						
						
						+ compiler implementation
  + tests
git-svn-id: trunk@13642 - 
						
					 
					
						2009-09-03 20:21:30 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							060bdbcb47 
							
						 
					 
					
						
						
							
							* fix writing of goto node to ppu  
						
						... 
						
						
						
						* replace derefnode with resolveppuidx method that only needs to be
    implemented for nodes referencing other nodes
  * fix IE when a label is not defined in inline function
git-svn-id: trunk@11697 - 
						
					 
					
						2008-09-03 20:46:04 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							8fe43377e1 
							
						 
					 
					
						
						
							
							+ convert case <boolean> of into if statement,  resolves   #10517  
						
						... 
						
						
						
						git-svn-id: trunk@10873 - 
						
					 
					
						2008-05-03 10:27:55 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							417c832e9d 
							
						 
					 
					
						
						
							
							* in node simplify  
						
						... 
						
						
						
						git-svn-id: trunk@10310 - 
						
					 
					
						2008-02-12 17:27:27 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							74f21d7bc3 
							
						 
					 
					
						
						
							
							* typecheck after converting type to constant set  
						
						... 
						
						
						
						git-svn-id: trunk@10081 - 
						
					 
					
						2008-01-28 17:35:32 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							8349cde7db 
							
						 
					 
					
						
						
							
							* changed byte/word/longbool to be Delphi-compatible (+ similar changes  
						
						... 
						
						
						
						for qwordbool) + test:
    o assigning true to such a variable now sets them to $ff/$ffff/$ffffffff
    o these types are now all signed
    o converting an integer type to a byte/word/long/qwordbool using an
      explicit type cast keeps the integer's original value stored in the
      bool, instead of forcing it to ord(true)/ord(false)
    (mantis #10233  and #10613 , implemented for all architectures, testsuite
     tested for ppc32, sparc and x86)
  * fixed some places where the rtl depended on longbool(true) having the
    value 1
  * extended several boolean tests (and adapted some to no longer assume
    that byte/word/long/qwordbool(true)=1)
  + support for converting to qwordbool in second_int_to_bool for x86, ppc
    and sparc
git-svn-id: trunk@9898 - 
						
					 
					
						2008-01-24 21:30:55 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6058b2c247 
							
						 
					 
					
						
						
							
							* renamed t_times to executionweight and moved it to  
						
						... 
						
						
						
						code generation pass
  * include executionweight in the spilling decision
git-svn-id: trunk@9330 - 
						
					 
					
						2007-11-25 16:38:05 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							82cf80d4ca 
							
						 
					 
					
						
						
							
							* added missing tcasenode.derefnode override to process all the  
						
						... 
						
						
						
						case-blocks and the else-block
git-svn-id: trunk@9251 - 
						
					 
					
						2007-11-14 19:40:28 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6b8aed593f 
							
						 
					 
					
						
						
							
							* remove registers{int/mmx/fpu} from firstpass  
						
						... 
						
						
						
						* small cleanups of unused variables in firstpass
  * node_resources_fpu() created to get an approximation of the
    required fpu registers
  * for the moment use node_complexity in the CG until the
    node_resource_int() is created
git-svn-id: trunk@8655 - 
						
					 
					
						2007-09-26 21:12:01 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							89ed91509a 
							
						 
					 
					
						
						
							
							* Some fixes for r8515:  
						
						... 
						
						
						
						* fixed set add-nodes in case left and right are swapped (taddset4)
   * fixed "in" expressions with packed sets in case left is < setbase
     (now tested by tw8258b, which was missing a {$packset 1} directive)
git-svn-id: trunk@8519 - 
						
					 
					
						2007-09-16 22:24:42 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							2e3833cd7a 
							
						 
					 
					
						
						
							
							* slightly improved previous in checking patch  
						
						... 
						
						
						
						git-svn-id: trunk@6892 - 
						
					 
					
						2007-03-16 22:31:51 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							428306051f 
							
						 
					 
					
						
						
							
							* give again an error for "in" operations on incompatible set  
						
						... 
						
						
						
						elements/sets after introduction of support for "longint in set"
git-svn-id: trunk@6885 - 
						
					 
					
						2007-03-16 19:44:43 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							f63b0ef160 
							
						 
					 
					
						
						
							
							* fixed overflow for constant in-expressions involving values >  
						
						... 
						
						
						
						high(uinttype) on the left side
git-svn-id: trunk@6852 - 
						
					 
					
						2007-03-14 19:42:01 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							530d5c125d 
							
						 
					 
					
						
						
							
							* limit the left hand side of "in" expressions to 2^32 for now  
						
						... 
						
						
						
						(fixes webtbs/tw8258 for 64 bit platforms)
git-svn-id: trunk@6393 - 
						
					 
					
						2007-02-10 16:20:47 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							fc3852e59a 
							
						 
					 
					
						
						
							
							* in non-TP modes, 'ord_larger_than_256 in set' now always returns  
						
						... 
						
						
						
						false instead of triggering a range error (mantis #8258 ,
    based on patch provided by Thorsten Engler)
git-svn-id: trunk@6357 - 
						
					 
					
						2007-02-07 18:57:19 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							e4e6f8112d 
							
						 
					 
					
						
						
							
							* fixed some warnings about hidden constructors  
						
						... 
						
						
						
						git-svn-id: trunk@5784 - 
						
					 
					
						2007-01-02 14:18:12 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							b86e2aa33a 
							
						 
					 
					
						
						
							
							* fixed crash when compiling certain invalid "in" constructions  
						
						... 
						
						
						
						(mantis 8031)
git-svn-id: trunk@5748 - 
						
					 
					
						2006-12-29 23:13:02 +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 
						 
				 
			
				
					
						
							
							
								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 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							b7fe6797bf 
							
						 
					 
					
						
						
							
							Merged revisions 2921-2922,2925 via svnmerge from  
						
						... 
						
						
						
						http://svn.freepascal.org/svn/fpc/branches/linker/compiler 
........
r2921 | peter | 2006-03-15 08:35:00 +0100 (Wed, 15 Mar 2006) | 2 lines
  * pass ObjectWriter to ObjectOuput
........
r2922 | peter | 2006-03-15 12:40:30 +0100 (Wed, 15 Mar 2006) | 2 lines
  * refactor asmdata
........
r2925 | peter | 2006-03-15 16:09:39 +0100 (Wed, 15 Mar 2006) | 3 lines
  * add cfi to asmdata
  * move asmlist, asmcfi, asmdata to own unit
........
git-svn-id: trunk@2932 - 
					
						2006-03-16 08:52:22 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							b6e35a200e 
							
						 
					 
					
						
						
							
							* rewrite of optimizer options  
						
						... 
						
						
						
						git-svn-id: trunk@2901 - 
						
					 
					
						2006-03-13 09:05:50 +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 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							232555904e 
							
						 
					 
					
						
						
							
							* symtablestack cleanup and rewrite  
						
						... 
						
						
						
						git-svn-id: trunk@2448 - 
						
					 
					
						2006-02-05 22:24:18 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							42ec76598c 
							
						 
					 
					
						
						
							
							* new categories for vs_*: vs_declared, vs_initialised, vs_read,  
						
						... 
						
						
						
						vs_written, vs_readwritten. vs_initialised is the old vs_assigned;
    vs_used has been replaced by vs_read, vs_written and vs_readwritten
  * the valid_for_*() routines in htypechk now get an extra parameter to
    decide whether or not errors should be reported
git-svn-id: trunk@1913 - 
						
					 
					
						2005-12-10 16:51:26 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							8b1f3d2470 
							
						 
					 
					
						
						
							
							* no range check for delphi mode with in operator  
						
						... 
						
						
						
						git-svn-id: trunk@1354 - 
						
					 
					
						2005-10-11 06:46:56 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							7cd67ea3f0 
							
						 
					 
					
						
						
							
							* node optimizer branch merged  
						
						... 
						
						
						
						* gotonode and gotolabel refactored
  * -Nu added to enable for loop unrolling
git-svn-id: trunk@446 - 
						
					 
					
						2005-06-19 17:42:10 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							3f9d6ab32f 
							
						 
					 
					
						
						
							
							* add hint when passing an uninitialized variable to a var parameter  
						
						
						
					 
					
						2005-03-25 22:20:18 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							e417e34496 
							
						 
					 
					
						
						
							
							* truncate log  
						
						
						
					 
					
						2005-02-14 17:13:06 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							bd04491f50 
							
						 
					 
					
						
						
							
							* patch from Peter to fix inlining of case statements  
						
						
						
					 
					
						2004-11-30 18:13:39 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							8a9758c5e2 
							
						 
					 
					
						
						
							
							* logs truncated  
						
						
						
					 
					
						2004-06-20 08:55:28 +00:00 
						 
				 
			
				
					
						
							
							
								florian 
							
						 
					 
					
						
						
						
						
							
						
						
							588e2c38bf 
							
						 
					 
					
						
						
							
							* dwarf branch merged  
						
						
						
					 
					
						2004-06-16 20:07:06 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6b96b70118 
							
						 
					 
					
						
						
							
							* fixed operator overload allowing for pointer-string  
						
						... 
						
						
						
						* replaced some type_e_mismatch with more informational messages 
						
					 
					
						2004-03-18 16:19:03 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							ecfbbeffc3 
							
						 
					 
					
						
						
							
							* renamed xNNbittype to xNNinttype  
						
						... 
						
						
						
						* renamed registers32 to registersint
  * replace some s32bit,u32bit with torddef([su]inttype).def.typ 
						
					 
					
						2004-02-03 22:32:53 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							97e87aaebc 
							
						 
					 
					
						
						
							
							* reginfo now also only allocated during register allocation  
						
						... 
						
						
						
						* third round of gdb cleanups: kick out most of concatstabto 
						
					 
					
						2004-01-26 16:12:27 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							dc7f09e29e 
							
						 
					 
					
						
						
							
							* check for enumdef.maxval<255 instead of enumdef.savesize  
						
						
						
					 
					
						2003-11-10 19:10:57 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							4a1ecb07d1 
							
						 
					 
					
						
						
							
							* splitted buildderef and buildderefimpl to fix interface crc  
						
						... 
						
						
						
						calculation 
						
					 
					
						2003-10-23 14:44:07 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6878c55c80 
							
						 
					 
					
						
						
							
							* write derefdata in a separate ppu entry  
						
						
						
					 
					
						2003-10-22 20:39:59 +00:00 
						 
				 
			
				
					
						
							
							
								daniel 
							
						 
					 
					
						
						
						
						
							
						
						
							b2343f4b16 
							
						 
					 
					
						
						
							
							* Register allocator splitted, ans abstract now  
						
						
						
					 
					
						2003-10-09 21:31:37 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							95f132db3d 
							
						 
					 
					
						
						
							
							* set_varstate cleanup  
						
						
						
					 
					
						2003-10-08 19:19:45 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							70fe77ca7c 
							
						 
					 
					
						
						
							
							* procinfo unit contains tprocinfo  
						
						... 
						
						
						
						* cginfo renamed to cgbase
  * moved cgmessage to verbose
  * fixed ppc and sparc compiles 
						
					 
					
						2003-10-01 20:34:48 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							6a8d5eb25d 
							
						 
					 
					
						
						
							
							* NEWRA branch merged  
						
						
						
					 
					
						2003-09-03 15:55:00 +00:00 
						 
				 
			
				
					
						
							
							
								Jonas Maebe 
							
						 
					 
					
						
						
						
						
							
						
						
							7ca760912b 
							
						 
					 
					
						
						
							
							* tcginnode.pass_2 doesn't call a helper anymore in any case  
						
						... 
						
						
						
						* fixed ungetregisterfpu compilation problems 
						
					 
					
						2003-06-12 22:09:54 +00:00 
						 
				 
			
				
					
						
							
							
								peter 
							
						 
					 
					
						
						
						
						
							
						
						
							05c05f2555 
							
						 
					 
					
						
						
							
							* failn removed  
						
						... 
						
						
						
						* inherited result code check moven to pexpr 
						
					 
					
						2003-05-13 19:14:41 +00:00