* dwarf2expr.c (execute_stack_op): Add QUIT.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7a76008..e33a1da 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,7 @@
+2011-07-08  Tom Tromey  <tromey@redhat.com>
+
+	* dwarf2expr.c (execute_stack_op): Add QUIT.
+
 2011-07-07  Hui Zhu  <teawater@gmail.com>
 
 	Revert:
diff --git a/gdb/dwarf2expr.c b/gdb/dwarf2expr.c
index c5ea85d..4522eb8 100644
--- a/gdb/dwarf2expr.c
+++ b/gdb/dwarf2expr.c
@@ -521,6 +521,10 @@
       LONGEST offset;
       struct value *result_val = NULL;
 
+      /* The DWARF expression might have a bug causing an infinite
+	 loop.  In that case, quitting is the only way out.  */
+      QUIT;
+
       switch (op)
 	{
 	case DW_OP_lit0: