aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/eval.c13
2 files changed, 17 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 290b1d1..4757d43 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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
diff --git a/gdb/eval.c b/gdb/eval.c
index a8fd2c2..116cf2b 100644
--- a/gdb/eval.c
+++ b/gdb/eval.c
@@ -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;