* eval.c (evaluate_subexp): Clear expect_type except for C++ and CHILL.
authorJim Kingdon <jkingdon@engr.sgi.com>
Sat, 14 Jan 1995 16:48:03 +0000 (16:48 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Sat, 14 Jan 1995 16:48:03 +0000 (16:48 +0000)
gdb/ChangeLog
gdb/eval.c

index 290b1d17f8343990fd53fab3ba5b20f68f8d002e..4757d43b3bf31bc18c69a710103e6ccb91b24be1 100644 (file)
@@ -1,3 +1,7 @@
+Sat Jan 14 11:18:11 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>
+
+       * eval.c (evaluate_subexp): Clear expect_type except for C++ and CHILL.
+
 Fri Jan 13 17:52:57 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>
 
        * infcmd.c (signal_command): Accept "signal 0"; the change to not
index a8fd2c242761e1fd5640ca4442637f90a01ecdb6..116cf2b550b2e6b9b01bf025134fe5f23001baa8 100644 (file)
@@ -172,6 +172,19 @@ evaluate_subexp (expect_type, exp, pos, noside)
   int code;
   struct internalvar *var; 
 
+  /* This expect_type crap should not be used for C.  C does not have
+     any notion of expected types, never has and (goddess willing)
+     never will.  The C++ code uses it for some twisted purpose (I
+     haven't investigated but I suspect it just the usual combination
+     of Stroustrup figuring out some crazy language feature and
+     Tiemann figuring out some crazier way to try to implement it).
+     CHILL has the tuple stuff; I don't know enough about CHILL to
+     know whether expected types is the way to do it.  FORTRAN I don't
+     know.  */
+  if (current_language->la_language != language_cplus
+      && current_language->la_language != language_chill)
+    expect_type = NULL_TYPE;
+
   pc = (*pos)++;
   op = exp->elts[pc].opcode;