瀏覽代碼

removed inline procedure from reflection (cannot be linked!)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6637 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 年之前
父節點
當前提交
f7bf4ffdb0
共有 1 個文件被更改,包括 20 次插入19 次删除
  1. 20 19
      source/FoxIntermediateBackend.Mod

+ 20 - 19
source/FoxIntermediateBackend.Mod

@@ -12517,26 +12517,27 @@ TYPE
 				Info(source, "ProcedureArray");
 				size :=0;
 				WHILE procedure # NIL DO
-				
-					Info(source,"name");
-					Symbol(source, moduleNamePoolSection, DynamicName(moduleNamePoolSection, procedure.name, moduleNamePool), 0); (* reference to dynamic name *)
-
-					implementationVisitor.GetCodeSectionNameForSymbol(procedure, segmentedName);
-					NamedSymbol(source, segmentedName, procedure, 0 , 0); 
-
-					(* size *)
-					Size(source, 0);
-					(* parameters *)
-					Address(source, 0);
-					(* variables *)
-					ReflectVariables(source, procedure);
-					ReflectProcedures(source, procedure);
-
-					(* return type entry *)
-					Address(source, 0);
-					Address(source, 0);
+					IF ~procedure.isInline THEN
+						Info(source,"name");
+						Symbol(source, moduleNamePoolSection, DynamicName(moduleNamePoolSection, procedure.name, moduleNamePool), 0); (* reference to dynamic name *)
+
+						implementationVisitor.GetCodeSectionNameForSymbol(procedure, segmentedName);
+						NamedSymbol(source, segmentedName, procedure, 0 , 0); 
+
+						(* size *)
+						Size(source, 0);
+						(* parameters *)
+						Address(source, 0);
+						(* variables *)
+						ReflectVariables(source, procedure);
+						ReflectProcedures(source, procedure);
+
+						(* return type entry *)
+						Address(source, 0);
+						Address(source, 0);
+						INC(size);
+					END;
 					procedure := procedure.nextProcedure;
-					INC(size);
 				END;
 				PatchArray(source,pc,size);
 			END ProcedureArray;