| Index: gdb/typeprint.c
 | 
| diff --git a/gdb/typeprint.c b/gdb/typeprint.c
 | 
| index de96fd5fcd1c8a59c075687f792b8f0517ab8429..c25e705d1c7154bf5df410ec9eef948f6e885eed 100644
 | 
| --- a/gdb/typeprint.c
 | 
| +++ b/gdb/typeprint.c
 | 
| @@ -73,7 +73,7 @@ default_print_typedef (struct type *type, struct symbol *new_symbol,
 | 
|     If SHOW is negative, we never show the details of elements' types.  */
 | 
|  
 | 
|  void
 | 
| -type_print (struct type *type, char *varstring, struct ui_file *stream,
 | 
| +type_print (struct type *type, const char *varstring, struct ui_file *stream,
 | 
|  	    int show)
 | 
|  {
 | 
|    LA_PRINT_TYPE (type, varstring, stream, show, 0);
 | 
| @@ -139,16 +139,7 @@ whatis_exp (char *exp, int show)
 | 
|        if (((TYPE_CODE (type) == TYPE_CODE_PTR)
 | 
|  	   || (TYPE_CODE (type) == TYPE_CODE_REF))
 | 
|  	  && (TYPE_CODE (TYPE_TARGET_TYPE (type)) == TYPE_CODE_CLASS))
 | 
| -        {
 | 
| -          real_type = value_rtti_target_type (val, &full, &top, &using_enc);
 | 
| -          if (real_type)
 | 
| -            {
 | 
| -              if (TYPE_CODE (type) == TYPE_CODE_PTR)
 | 
| -                real_type = lookup_pointer_type (real_type);
 | 
| -              else
 | 
| -                real_type = lookup_reference_type (real_type);
 | 
| -            }
 | 
| -        }
 | 
| +        real_type = value_rtti_indirect_type (val, &full, &top, &using_enc);
 | 
|        else if (TYPE_CODE (type) == TYPE_CODE_CLASS)
 | 
|  	real_type = value_rtti_type (val, &full, &top, &using_enc);
 | 
|      }
 | 
| @@ -215,7 +206,7 @@ print_type_scalar (struct type *type, LONGEST val, struct ui_file *stream)
 | 
|        len = TYPE_NFIELDS (type);
 | 
|        for (i = 0; i < len; i++)
 | 
|  	{
 | 
| -	  if (TYPE_FIELD_BITPOS (type, i) == val)
 | 
| +	  if (TYPE_FIELD_ENUMVAL (type, i) == val)
 | 
|  	    {
 | 
|  	      break;
 | 
|  	    }
 | 
| 
 |