PPC gold doesn't check for overflow properly
[platform/upstream/binutils.git] / gdb / c-valprint.c
index 9573105..17963f0 100644 (file)
@@ -18,7 +18,6 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
-#include <string.h>
 #include "symtab.h"
 #include "gdbtypes.h"
 #include "expression.h"
@@ -28,6 +27,7 @@
 #include "c-lang.h"
 #include "cp-abi.h"
 #include "target.h"
+#include "objfiles.h"
 \f
 
 /* A helper for c_textual_element_type.  This checks the name of the
@@ -172,9 +172,9 @@ c_val_print (struct type *type, const gdb_byte *valaddr,
                                      options->format)
              && value_bytes_available (original_value, embedded_offset,
                                        TYPE_LENGTH (type))
-             && value_bits_valid (original_value,
-                                  TARGET_CHAR_BIT * embedded_offset,
-                                  TARGET_CHAR_BIT * TYPE_LENGTH (type)))
+             && !value_bits_any_optimized_out (original_value,
+                                               TARGET_CHAR_BIT * embedded_offset,
+                                               TARGET_CHAR_BIT * TYPE_LENGTH (type)))
            {
              int force_ellipses = 0;
 
@@ -316,12 +316,12 @@ c_val_print (struct type *type, const gdb_byte *valaddr,
              /* If 'symbol_print' is set, we did the work above.  */
              if (!options->symbol_print
                  && (msymbol.minsym != NULL)
-                 && (vt_address == SYMBOL_VALUE_ADDRESS (msymbol.minsym)))
+                 && (vt_address == BMSYMBOL_VALUE_ADDRESS (msymbol)))
                {
                  if (want_space)
                    fputs_filtered (" ", stream);
                  fputs_filtered (" <", stream);
-                 fputs_filtered (SYMBOL_PRINT_NAME (msymbol.minsym), stream);
+                 fputs_filtered (MSYMBOL_PRINT_NAME (msymbol.minsym), stream);
                  fputs_filtered (">", stream);
                  want_space = 1;
                }
@@ -338,7 +338,7 @@ c_val_print (struct type *type, const gdb_byte *valaddr,
                    fputs_filtered (" ", stream);
 
                  if (msymbol.minsym != NULL)
-                   wsym = lookup_symbol (SYMBOL_LINKAGE_NAME (msymbol.minsym),
+                   wsym = lookup_symbol (MSYMBOL_LINKAGE_NAME (msymbol.minsym),
                                          block, VAR_DOMAIN,
                                          &is_this_fld);