Changeset 2f11c36 in rtems-tools


Ignore:
Timestamp:
Oct 15, 2015, 10:06:05 AM (4 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, master
Children:
0382b68
Parents:
f11d18b
Message:

Always provide the argument size defines.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • linkers/rtems-tld.cpp

    rf11d18b r2f11c36  
    12351235            c.write_line("");
    12361236
    1237             if (sig.has_args () || (sig.has_ret () && !generator_.ret_trace.empty ()))
     1237            std::string ds;
     1238            std::string des;
     1239            std::string drs;
     1240            bool        ds_added = false;
     1241            bool        des_added = false;
     1242            bool        drs_added = false;
     1243            ds  = "#define FUNC_DATA_SIZE_" + sig.name + " (";
     1244            des = "#define FUNC_DATA_ENTRY_SIZE_" + sig.name + " (";
     1245            drs = "#define FUNC_DATA_RET_SIZE_" + sig.name + " (";
     1246
     1247            if (sig.has_args ())
    12381248            {
    1239               std::string ds;
    1240               std::string des;
    1241               std::string drs;
    1242               bool        ds_added = false;
    1243               bool        des_added = false;
    1244               bool        drs_added = false;
    1245               ds  = "#define FUNC_DATA_SIZE_" + sig.name + " (";
    1246               des = "#define FUNC_DATA_ENTRY_SIZE_" + sig.name + " (";
    1247               drs = "#define FUNC_DATA_RET_SIZE_" + sig.name + " (";
    1248               if (sig.has_args ())
    1249               {
    1250                 for (size_t a = 0; a < sig.args.size (); ++a)
    1251                 {
    1252                   if (ds_added)
    1253                     ds += " + ";
    1254                   else
    1255                     ds_added = true;
    1256                   if (des_added)
    1257                     des += " + ";
    1258                   else
    1259                     des_added = true;
    1260                   ds += "sizeof(" + sig.args[a] + ')';
    1261                   des += "sizeof(" + sig.args[a] + ')';
    1262                 }
    1263               }
    1264               if (sig.has_ret () && !generator_.ret_trace.empty ())
     1249              for (size_t a = 0; a < sig.args.size (); ++a)
    12651250              {
    12661251                if (ds_added)
     
    12681253                else
    12691254                  ds_added = true;
    1270                 if (drs_added)
    1271                   drs += " + ";
     1255                if (des_added)
     1256                  des += " + ";
    12721257                else
    1273                   drs_added = true;
    1274                 ds += "sizeof(" + sig.ret + ')';
    1275                 drs += "sizeof(" + sig.ret + ')';
     1258                  des_added = true;
     1259                ds += "sizeof(" + sig.args[a] + ')';
     1260                des += "sizeof(" + sig.args[a] + ')';
    12761261              }
    1277               if (!ds_added)
    1278                 ds += '0';
    1279               ds += ')';
    1280               if (!des_added)
    1281                 des += '0';
    1282               des += ')';
    1283               if (!drs_added)
    1284                 drs += '0';
    1285               drs += ')';
    1286               c.write_line(ds);
    1287               c.write_line(des);
    1288               c.write_line(drs);
    12891262            }
     1263            if (sig.has_ret () && !generator_.ret_trace.empty ())
     1264            {
     1265              if (ds_added)
     1266                ds += " + ";
     1267              else
     1268                ds_added = true;
     1269              if (drs_added)
     1270                drs += " + ";
     1271              else
     1272                drs_added = true;
     1273              ds += "sizeof(" + sig.ret + ')';
     1274              drs += "sizeof(" + sig.ret + ')';
     1275            }
     1276            if (!ds_added)
     1277              ds += '0';
     1278            ds += ')';
     1279            if (!des_added)
     1280              des += '0';
     1281            des += ')';
     1282            if (!drs_added)
     1283              drs += '0';
     1284            drs += ')';
     1285            c.write_line(ds);
     1286            c.write_line(des);
     1287            c.write_line(drs);
    12901288
    12911289            c.write_line(sig.decl () + ";");
Note: See TracChangeset for help on using the changeset viewer.