浏览代码

* throw an error if threadvars are used but not supported
* fix building for arm-embedded

git-svn-id: trunk@23452 -

florian 12 年之前
父节点
当前提交
81e0e3114c
共有 3 个文件被更改,包括 13 次插入4 次删除
  1. 7 1
      compiler/pdecl.pas
  2. 1 2
      rtl/inc/compproc.inc
  3. 5 1
      rtl/inc/text.inc

+ 7 - 1
compiler/pdecl.pas

@@ -839,7 +839,13 @@ implementation
         consume(_THREADVAR);
         consume(_THREADVAR);
         if not(symtablestack.top.symtabletype in [staticsymtable,globalsymtable]) then
         if not(symtablestack.top.symtabletype in [staticsymtable,globalsymtable]) then
           message(parser_e_threadvars_only_sg);
           message(parser_e_threadvars_only_sg);
-        read_var_decls([vd_threadvar]);
+        if f_threading in features then
+          read_var_decls([vd_threadvar])
+        else
+          begin
+            Message(parser_f_unsupported_feature);
+            read_var_decls([]);
+          end;
       end;
       end;
 
 
 
 

+ 1 - 2
rtl/inc/compproc.inc

@@ -554,11 +554,10 @@ procedure fpc_raise_nested; compilerproc;
 function fpc_help_constructor(_self:pointer;var _vmt:pointer;_vmt_pos:cardinal):pointer;compilerproc;
 function fpc_help_constructor(_self:pointer;var _vmt:pointer;_vmt_pos:cardinal):pointer;compilerproc;
 procedure fpc_help_destructor(_self,_vmt:pointer;vmt_pos:cardinal);compilerproc;
 procedure fpc_help_destructor(_self,_vmt:pointer;vmt_pos:cardinal);compilerproc;
 procedure fpc_help_fail(_self:pointer;var _vmt:pointer;vmt_pos:cardinal);compilerproc;
 procedure fpc_help_fail(_self:pointer;var _vmt:pointer;vmt_pos:cardinal);compilerproc;
-{$endif FPC_HAS_FEATURE_OBJECTS}
-
 
 
 procedure fpc_check_object(_vmt:pointer); compilerproc;
 procedure fpc_check_object(_vmt:pointer); compilerproc;
 procedure fpc_check_object_ext(vmt,expvmt:pointer);compilerproc;
 procedure fpc_check_object_ext(vmt,expvmt:pointer);compilerproc;
+{$endif FPC_HAS_FEATURE_OBJECTS}
 
 
 
 
 {$ifdef FPC_HAS_FEATURE_RTTI}
 {$ifdef FPC_HAS_FEATURE_RTTI}

+ 5 - 1
rtl/inc/text.inc

@@ -1698,7 +1698,11 @@ const
   { how many bytes of the string have been processed already (used for readstr) }
   { how many bytes of the string have been processed already (used for readstr) }
   BytesReadIndex = 17;
   BytesReadIndex = 17;
 
 
-threadvar
+{$ifdef FPC_HAS_FEATURE_THREADING}
+ThreadVar
+{$else FPC_HAS_FEATURE_THREADING}
+Var
+{$endif FPC_HAS_FEATURE_THREADING}
   ReadWriteStrText: textrec;
   ReadWriteStrText: textrec;
 
 
 procedure WriteStrShort(var t: textrec);
 procedure WriteStrShort(var t: textrec);