This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Unreachable EH region? (PR 6823)


I've just been looking at Java PR 6823:

  class Demo
  {
    final synchronized void foo() { return; }
    void bar()
    {
      foo();
      synchronized (this) { return; }
    }
  }

The synchronized keyword basically expands to a try/finally and 
MonitorEnter/MonitorExit runtime calls.

Compiling this test fails in resolve_fixup_regions because there is a 
null entry in the region_array.  collect_eh_region_array does not 
encounter any region number 2 while its traversing through the 
function's region tree.

Is this a bug with except.c or is something feeding it broken eh regions?

The bug only occurs when the call to "foo" gets inlined. Could the RTL 
inliner (still used by gcj) be screwing things up?

regards

Bryce.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]