public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* A -funroll-loops bug
@ 1997-10-31 16:50 H.J. Lu
  1997-11-07 19:55 ` Jim Wilson
  0 siblings, 1 reply; 2+ messages in thread
From: H.J. Lu @ 1997-10-31 16:50 UTC (permalink / raw)
  To: egcs

On linux/x86, I got

# gcc -S -g -O -funroll-loops foo.cc
foo.cc: In function `void splittest()':
foo.cc:16: Internal compiler error.
foo.cc:16: Please submit a full bug report to `egcs-bugs@cygnus.com'.

If I take out -g or -funroll-loops, it compiles ok.

-- 
H.J. Lu (hjl@gnu.ai.mit.edu)
---foo.cc--
class String
{
public:
                    String();
                    ~String();
  int               OK() const;
};
void splittest()
{
  String w[10];
  for (int i = 0; i < 5; ++i)
  {
    if (!w[i].OK())
      return;
  }
}

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: A -funroll-loops bug
  1997-10-31 16:50 A -funroll-loops bug H.J. Lu
@ 1997-11-07 19:55 ` Jim Wilson
  0 siblings, 0 replies; 2+ messages in thread
From: Jim Wilson @ 1997-11-07 19:55 UTC (permalink / raw)
  To: H.J. Lu; +Cc: egcs

	On linux/x86, I got

	# gcc -S -g -O -funroll-loops foo.cc
	foo.cc: In function `void splittest()':
	foo.cc:16: Internal compiler error.
	foo.cc:16: Please submit a full bug report to `egcs-bugs@cygnus.com'.

This patch fixes the problem.

There is a little bit of obsolete code in the C++ front end that never got
removed when the handling of BIND_EXPR BLOCK nodes changed several years ago.

Thu Nov  6 18:27:36 1997  Jim Wilson  <wilson@cygnus.com>

	* decl.c (add_block_current_level): Delete.
	* init.c (build_vec_delete_1): Delete build_block and
	add_block_current_level calls.

diff -pr clean-egcs-971105/gcc/cp/decl.c egcs-971105/gcc/cp/decl.c
*** clean-egcs-971105/gcc/cp/decl.c	Mon Oct 20 11:45:51 1997
--- egcs-971105/gcc/cp/decl.c	Thu Nov  6 17:54:14 1997
*************** insert_block (block)
*** 1398,1413 ****
      = chainon (current_binding_level->blocks, block);
  }
  
- /* Add BLOCK to the current list of blocks for this binding contour.  */
- 
- void
- add_block_current_level (block)
-      tree block;
- {
-   current_binding_level->blocks
-     = chainon (current_binding_level->blocks, block);
- }
- 
  /* Set the BLOCK node for the innermost scope
     (the one we are currently in).  */
  
--- 1398,1403 ----
diff -pr clean-egcs-971105/gcc/cp/init.c egcs-971105/gcc/cp/init.c
*** clean-egcs-971105/gcc/cp/init.c	Tue Oct 14 13:45:19 1997
--- egcs-971105/gcc/cp/init.c	Thu Nov  6 17:54:15 1997
*************** build_vec_delete_1 (base, maxindex, type
*** 2772,2779 ****
    DECL_REGISTER (tbase) = 1;
    controller = build (BIND_EXPR, void_type_node, tbase, NULL_TREE, NULL_TREE);
    TREE_SIDE_EFFECTS (controller) = 1;
-   block = build_block (tbase, NULL_TREE, NULL_TREE, NULL_TREE, NULL_TREE);
-   add_block_current_level (block);
  
    if (auto_delete != integer_zero_node
        && auto_delete != integer_two_node)
--- 2772,2777 ----

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-11-07 19:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-10-31 16:50 A -funroll-loops bug H.J. Lu
1997-11-07 19:55 ` Jim Wilson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).