+2016-07-07  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+       * cp-namespace.c (cp_lookup_bare_symbol): Use language passed as
+       parameter to look for the symbol "this".
+
+
 2016-07-06  John Baldwin  <jhb@FreeBSD.org>
 
        * h8300-tdep.c (h8300_print_register): Remove extraneous parentheses.
 
       struct block_symbol lang_this;
       struct type *type;
 
-      lang_this = lookup_language_this (language_def (language_cplus), block);
+      if (langdef != NULL)
+       lang_this = lookup_language_this (langdef, block);
+
       if (lang_this.symbol == NULL)
        return null_block_symbol;
 
+
       type = check_typedef (TYPE_TARGET_TYPE (SYMBOL_TYPE (lang_this.symbol)));
       /* If TYPE_NAME is NULL, abandon trying to find this symbol.
         This can happen for lambda functions compiled with clang++,
 
+2016-07-07  Walfred Tedeschi  <walfred.tedeschi@intel.com>
+
+       * gdb.fortran/derived-types.exp (result_line, result_line_2):
+       New variables.
+       (print this%a, print this%b, print this): New tests.
+       * gdb.fortran/derived-types.f90 (this): New object and
+       initialization.
+
 2016-07-06  Simon Marchi  <simon.marchi@ericsson.com>
 
        * gdb.ada/arraydim.exp: Remove extra directory level in build
 
 gdb_test "print q%x%c" "\\$\[0-9\]+ = 1"
 gdb_test "print q%x%d" "\\$\[0-9\]+ = 2\\.375"
 
+set result_line "= \\( a = 3.125, x = \\( c = 1, d = 2\\.375 \\),\
+b = 'abcdefg' \\)\r\n$gdb_prompt $"
+
+# Used in case compiler generates an array of characters.
+set result_line_2 " = \\( a = 3.125, x = \\( 1, 2\\.375 \\),\
+b = \\('abcdefg'\\) \\)\r\n$gdb_prompt $"
+
 set test "print q"
 gdb_test_multiple $test $test {
-    -re "\\$\[0-9\]+ = \\( a = 3.125, x = \\( c = 1, d = 2\\.375 \\), b = 'abcdefg' \\)\r\n$gdb_prompt $" {
+    -re $result_line {
        pass $test
     }
-    -re "\\$\[0-9\]+ = \\( a = 3.125, x = \\( 1, 2\\.375 \\), b = \\('abcdefg'\\) \\)\r\n$gdb_prompt $" {
+    -re $result_line_2 {
        # Compiler should produce string, not an array of characters.
        setup_xfail "*-*-*"
        fail $test
     }
 }
+
+gdb_test "print this%a" " = 3\\.125"
+
+set test "print this%b"
+gdb_test_multiple $test $test {
+    -re " = 'abcdefg'\r\n$gdb_prompt $" {
+        pass $test
+    }
+    -re $result_line_2 {
+        setup_xfail "*-*-*"
+        fail $test
+    }
+}
+
+set test "print this"
+gdb_test_multiple $test $test {
+    -re $result_line {
+        pass $test
+    }
+    -re $result_line_2 {
+         setup_xfail "*-*-*"
+         fail $test
+    }
+}
 
   end type foo
   type(foo) :: q
   type(bar) :: p
+  type(foo) :: this
 
   p = bar(1, 2.375)
   q%a = 3.125
   q%b = "abcdefg"
   q%x%c = 1
   q%x%d = 2.375
-  print *,p,q 
+  this%a = 3.125
+  this%b = "abcdefg"
+  this%x%c = 1
+  this%x%d = 2.375
+  print *,p,q,this
 
 end program main