Added a short doc listing places that I know or suspect are not 64-bit
clean.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3176 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/docs/64-bit-cleanness b/docs/64-bit-cleanness
new file mode 100644
index 0000000..7b73b86
--- /dev/null
+++ b/docs/64-bit-cleanness
@@ -0,0 +1,36 @@
+-----------------------------------------------------------------------------
+64-bit cleanness
+-----------------------------------------------------------------------------
+The following are places I know or suspect contain code that is not 64-bit
+clean.  Please mark them off this list as they are fixed, and add any new ones
+you know of.
+
+Memcheck is full of 32-bit assumptions:
+- shadow memory in general -- two-level lookup table, etc -- is totally 32-bit
+  specific.
+- new_mem_stack_4 etc are all very 32-bit specific... should make it
+  new_mem_stack_1wd, etc.  Also then need to change
+  make_aligned_word_noaccess() et al (heaps of places)
+- also rotateRight16 and all its dependents...
+- all the calls to IS_ALIGNED4_ADDR are 32-bit specific code.  Likewise
+  with Addrcheck?  Not sure.  Plus there's one in vg_transtab.c which doesn't
+  look right.
+
+Addrcheck has similar problems.  Helgrind too, especially the 32-bit specific
+"OTHER_BITS".
+
+Symbol table stuff:
+- is vg_dwarf.h 32-bit specific?
+- Elf32_* constants everywhere in vg_symtab2.c, blecch
+- symtab -- 32-bit specific stuff in here?  eg. search for
+  "(UInt)sym->st_value"
+- stabtype_parser -- all those literal 4's as args to VG_(st_mkint) -- are they
+  64-bit clean?  Who knows...
+
+Others:
+- search for the following casts: (UInt*), (Int*), (UInt *), (Int *)
+- should deref_UInt be deref_UWord??  Is socklen_t word-sized?
+- vki_sigset_t.sig use: the debug printing in do_setmask() is wrong -- it
+  touches sig[1], thus assuming 32-bits.  Likewise in handle_SCSS_change()
+- client_auxv in vg_main.c is UInt** -- should it be UWord** ?
+