allow float type
authornotaz <notasas@gmail.com>
Fri, 14 Mar 2014 00:22:03 +0000 (02:22 +0200)
committernotaz <notasas@gmail.com>
Fri, 14 Mar 2014 00:22:03 +0000 (02:22 +0200)
plugin/saveasm.cpp
tools/translate.c

index 48b21e4..aee282f 100644 (file)
@@ -248,7 +248,10 @@ static void idaapi run(int /*arg*/)
           if (cmd.Operands[o].type == o_mem) {
             tmp_ea = cmd.Operands[o].addr;
             flags_t tmp_ea_flags = get_flags_novalue(tmp_ea);
-            if (!isUnknown(tmp_ea_flags)) {
+            // ..but base float is ok..
+            int is_flt = isDwrd(tmp_ea_flags) || isFloat(tmp_ea_flags);
+            if (!is_flt && !isUnknown(tmp_ea_flags))
+            {
               buf[0] = 0;
               get_name(ea, tmp_ea, buf, sizeof(buf));
               msg("%x: undefining %x '%s'\n", ea, tmp_ea, buf);
index 8d2fb6f..f1ea6f4 100644 (file)
@@ -495,6 +495,7 @@ static int guess_lmod_from_c_type(enum opr_lenmod *lmod,
     "int", "_DWORD", "UINT_PTR", "DWORD",
     "WPARAM", "LPARAM", "UINT", "__int32",
     "LONG", "HIMC", "BOOL", "size_t",
+    "float",
   };
   static const char *word_types[] = {
     "uint16_t", "int16_t", "_WORD", "WORD",