summaryrefslogtreecommitdiffstats
path: root/linkers
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2015-10-15 21:06:05 +1100
committerChris Johns <chrisj@rtems.org>2015-10-15 21:06:05 +1100
commit2f11c3631d3bcaf5447019bb4784c231f079285b (patch)
treed326f8ec4359a53b5beaeb3c3b16b380c83bdaa5 /linkers
parentChange to use the task implemenation interface. (diff)
downloadrtems-tools-2f11c3631d3bcaf5447019bb4784c231f079285b.tar.bz2
Always provide the argument size defines.
Diffstat (limited to 'linkers')
-rw-r--r--linkers/rtems-tld.cpp86
1 files changed, 42 insertions, 44 deletions
diff --git a/linkers/rtems-tld.cpp b/linkers/rtems-tld.cpp
index a2a6e23..01c0853 100644
--- a/linkers/rtems-tld.cpp
+++ b/linkers/rtems-tld.cpp
@@ -1234,59 +1234,57 @@ namespace rld
c.write_line("");
- if (sig.has_args () || (sig.has_ret () && !generator_.ret_trace.empty ()))
+ std::string ds;
+ std::string des;
+ std::string drs;
+ bool ds_added = false;
+ bool des_added = false;
+ bool drs_added = false;
+ ds = "#define FUNC_DATA_SIZE_" + sig.name + " (";
+ des = "#define FUNC_DATA_ENTRY_SIZE_" + sig.name + " (";
+ drs = "#define FUNC_DATA_RET_SIZE_" + sig.name + " (";
+
+ if (sig.has_args ())
{
- std::string ds;
- std::string des;
- std::string drs;
- bool ds_added = false;
- bool des_added = false;
- bool drs_added = false;
- ds = "#define FUNC_DATA_SIZE_" + sig.name + " (";
- des = "#define FUNC_DATA_ENTRY_SIZE_" + sig.name + " (";
- drs = "#define FUNC_DATA_RET_SIZE_" + sig.name + " (";
- if (sig.has_args ())
- {
- for (size_t a = 0; a < sig.args.size (); ++a)
- {
- if (ds_added)
- ds += " + ";
- else
- ds_added = true;
- if (des_added)
- des += " + ";
- else
- des_added = true;
- ds += "sizeof(" + sig.args[a] + ')';
- des += "sizeof(" + sig.args[a] + ')';
- }
- }
- if (sig.has_ret () && !generator_.ret_trace.empty ())
+ for (size_t a = 0; a < sig.args.size (); ++a)
{
if (ds_added)
ds += " + ";
else
ds_added = true;
- if (drs_added)
- drs += " + ";
+ if (des_added)
+ des += " + ";
else
- drs_added = true;
- ds += "sizeof(" + sig.ret + ')';
- drs += "sizeof(" + sig.ret + ')';
+ des_added = true;
+ ds += "sizeof(" + sig.args[a] + ')';
+ des += "sizeof(" + sig.args[a] + ')';
}
- if (!ds_added)
- ds += '0';
- ds += ')';
- if (!des_added)
- des += '0';
- des += ')';
- if (!drs_added)
- drs += '0';
- drs += ')';
- c.write_line(ds);
- c.write_line(des);
- c.write_line(drs);
}
+ if (sig.has_ret () && !generator_.ret_trace.empty ())
+ {
+ if (ds_added)
+ ds += " + ";
+ else
+ ds_added = true;
+ if (drs_added)
+ drs += " + ";
+ else
+ drs_added = true;
+ ds += "sizeof(" + sig.ret + ')';
+ drs += "sizeof(" + sig.ret + ')';
+ }
+ if (!ds_added)
+ ds += '0';
+ ds += ')';
+ if (!des_added)
+ des += '0';
+ des += ')';
+ if (!drs_added)
+ drs += '0';
+ drs += ')';
+ c.write_line(ds);
+ c.write_line(des);
+ c.write_line(drs);
c.write_line(sig.decl () + ";");
c.write_line(sig.decl ("__real_") + ";");