* Get rid of unnecessary c++ aliasing violation (csilvers)
	* Better error message on parse failure (tstromberg)


git-svn-id: https://gflags.googlecode.com/svn/trunk@37 6586e3c6-dcc4-952a-343f-ff74eb82781d
diff --git a/src/gflags/gflags.h.in b/src/gflags/gflags.h.in
index 12a5d2e..21727a8 100644
--- a/src/gflags/gflags.h.in
+++ b/src/gflags/gflags.h.in
@@ -520,17 +520,17 @@
 // The weird 'using' + 'extern' inside the fLS namespace is to work around
 // an unknown compiler bug/issue with the gcc 4.2.1 on SUSE 10.  See
 //    http://code.google.com/p/google-gflags/issues/detail?id=20
-#define DEFINE_string(name, val, txt)                                     \
-  namespace fLS {                                                         \
-    static union { void* align; char s[sizeof(std::string)]; } s_##name[2]; \
-    const std::string* const FLAGS_no##name = new (s_##name[0].s) std::string(val); \
-    static @ac_google_namespace@::FlagRegisterer o_##name(                \
-      #name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__,                \
-      s_##name[0].s, new (s_##name[1].s) std::string(*FLAGS_no##name));   \
-    extern std::string& FLAGS_##name;                                     \
-    using fLS::FLAGS_##name;                                              \
-    std::string& FLAGS_##name = *(reinterpret_cast<std::string*>(s_##name[0].s));   \
-  }                                                                       \
+#define DEFINE_string(name, val, txt)                                         \
+  namespace fLS {                                                             \
+    static union { void* align; char s[sizeof(std::string)]; } s_##name[2];   \
+    std::string* const FLAGS_no##name = new (s_##name[0].s) std::string(val); \
+    static @ac_google_namespace@::FlagRegisterer o_##name(                    \
+      #name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__,                    \
+      s_##name[0].s, new (s_##name[1].s) std::string(*FLAGS_no##name));       \
+    extern std::string& FLAGS_##name;                                         \
+    using fLS::FLAGS_##name;                                                  \
+    std::string& FLAGS_##name = *FLAGS_no##name;                              \
+  }                                                                           \
   using fLS::FLAGS_##name
 
 #endif  // SWIG
diff --git a/src/windows/gflags/gflags.h b/src/windows/gflags/gflags.h
index e442eed..e98435d 100644
--- a/src/windows/gflags/gflags.h
+++ b/src/windows/gflags/gflags.h
@@ -531,17 +531,17 @@
 // The weird 'using' + 'extern' inside the fLS namespace is to work around
 // an unknown compiler bug/issue with the gcc 4.2.1 on SUSE 10.  See
 //    http://code.google.com/p/google-gflags/issues/detail?id=20
-#define DEFINE_string(name, val, txt)                                     \
-  namespace fLS {                                                         \
-    static union { void* align; char s[sizeof(std::string)]; } s_##name[2]; \
-    const std::string* const FLAGS_no##name = new (s_##name[0].s) std::string(val); \
-    static ::google::FlagRegisterer o_##name(                \
-      #name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__,                \
-      s_##name[0].s, new (s_##name[1].s) std::string(*FLAGS_no##name));   \
-    extern __declspec(dllexport) std::string& FLAGS_##name;               \
-    using fLS::FLAGS_##name;                                              \
-    std::string& FLAGS_##name = *(reinterpret_cast<std::string*>(s_##name[0].s));   \
-  }                                                                       \
+#define DEFINE_string(name, val, txt)                                         \
+  namespace fLS {                                                             \
+    static union { void* align; char s[sizeof(std::string)]; } s_##name[2];   \
+    std::string* const FLAGS_no##name = new (s_##name[0].s) std::string(val); \
+    static ::google::FlagRegisterer o_##name(                                 \
+      #name, "string", MAYBE_STRIPPED_HELP(txt), __FILE__,                    \
+      s_##name[0].s, new (s_##name[1].s) std::string(*FLAGS_no##name));       \
+    extern __declspec(dllexport) std::string& FLAGS_##name;                   \
+    using fLS::FLAGS_##name;                                                  \
+    std::string& FLAGS_##name = *FLAGS_no##name;                              \
+  }                                                                           \
   using fLS::FLAGS_##name
 
 #endif  // SWIG