ソースを参照

* added protected queue_is_active() function to determine whether the
complex typed constant expressions queue is currently active

git-svn-id: trunk@31058 -

Jonas Maebe 10 年 前
コミット
8d0c5ecf5a
1 ファイル変更12 行追加0 行削除
  1. 12 0
      compiler/aasmcnst.pas

+ 12 - 0
compiler/aasmcnst.pas

@@ -341,6 +341,11 @@ type
      procedure queue_emit_asmsym(sym: tasmsymbol; def: tdef); virtual;
      { ... an ordinal constant }
      procedure queue_emit_ordconst(value: int64; def: tdef); virtual;
+    protected
+     { returns whether queue_init has been called without a corresponding
+       queue_emit_* to finish it }
+     function queue_is_active: boolean;
+    public
 
      { finalize the internal asmlist (if necessary) and return it.
        This asmlist will be freed when the builder is destroyed, so add its
@@ -1472,6 +1477,7 @@ implementation
        fqueue_offset:=low(fqueue_offset);
      end;
 
+
    procedure ttai_typedconstbuilder.queue_emit_ordconst(value: int64; def: tdef);
      begin
        emit_ord_const(value,def);
@@ -1479,6 +1485,12 @@ implementation
      end;
 
 
+   function ttai_typedconstbuilder.queue_is_active: boolean;
+     begin
+       result:=fqueue_offset<>low(fqueue_offset)
+     end;
+
+
 {****************************************************************************
                            tai_abstracttypedconst
  ****************************************************************************}