From 81e0e3114c84914b6ada82670dbbef2249758bc6 Mon Sep 17 00:00:00 2001 From: florian Date: Sat, 19 Jan 2013 15:17:47 +0000 Subject: [PATCH] * throw an error if threadvars are used but not supported * fix building for arm-embedded git-svn-id: trunk@23452 - --- compiler/pdecl.pas | 8 +++++++- rtl/inc/compproc.inc | 3 +-- rtl/inc/text.inc | 6 +++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/compiler/pdecl.pas b/compiler/pdecl.pas index 06a310233a..9338cdb43f 100644 --- a/compiler/pdecl.pas +++ b/compiler/pdecl.pas @@ -839,7 +839,13 @@ implementation consume(_THREADVAR); if not(symtablestack.top.symtabletype in [staticsymtable,globalsymtable]) then 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; diff --git a/rtl/inc/compproc.inc b/rtl/inc/compproc.inc index 03d936fbc7..14d3e0771c 100644 --- a/rtl/inc/compproc.inc +++ b/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; procedure fpc_help_destructor(_self,_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_ext(vmt,expvmt:pointer);compilerproc; +{$endif FPC_HAS_FEATURE_OBJECTS} {$ifdef FPC_HAS_FEATURE_RTTI} diff --git a/rtl/inc/text.inc b/rtl/inc/text.inc index 05a736aa1d..18e7a03fcc 100644 --- a/rtl/inc/text.inc +++ b/rtl/inc/text.inc @@ -1698,7 +1698,11 @@ const { how many bytes of the string have been processed already (used for readstr) } BytesReadIndex = 17; -threadvar +{$ifdef FPC_HAS_FEATURE_THREADING} +ThreadVar +{$else FPC_HAS_FEATURE_THREADING} +Var +{$endif FPC_HAS_FEATURE_THREADING} ReadWriteStrText: textrec; procedure WriteStrShort(var t: textrec);