+ -re ".*in.*init.*$gdb_prompt $" {
+ # This is what happens on sparc64-elf ultra.
+ pass "step out of main"
+ }
+ -re ".*in.*dll_crt0_1.*$gdb_prompt $" {
+ # This is what happens on Cygwin.
+ pass "step out of main"
+ }
+ -re ".*WinMain.*$gdb_prompt $" {
+ # This is what happens on mingw32ce.
+ pass "step out of main"
+ }
+ -re ".*$inferior_exited_re normally.*$gdb_prompt $" {
+ # This is what happens on Linux i86 (and I would expect others)
+ set program_exited 1
+ pass "step out of main"
+ }
+ -re ".*in .nope ().*$gdb_prompt $" {
+ # This is what happens on Solaris currently -sts 1999-08-25
+ pass "step out of main"
+ }
+ -re ".*in _int_reset ().*$gdb_prompt $" {
+ # This is what happens on Sanyo XStormy16
+ pass "step out of main"
+ }
+ -re ".*init ().*$gdb_prompt $" {
+ # This is what happens on many Mips targets
+ pass "step out of main"
+ }
+ -re ".*in ..change.mode ().*$gdb_prompt $" {
+ # This is what happens on ARM in thumb mode -fn 2000-02-01
+ pass "step out of main"
+ }
+ -re ".*__rt_entry.* ().*$gdb_prompt $" {
+ # This is what happens on the ARM RVDS runtime
+ pass "step out of main"
+ }
+ -re ".*in.*\\\$START\\\$.*from.*dld.sl.*$gdb_prompt $" {
+ pass "step out of main"
+ }
+ -re ".*in __wrap__?main ().*$gdb_prompt $" {
+ pass "step out of main"
+ }
+ -re "__setup_argv_for_main (.*).*$gdb_prompt $" {
+ # On sh, another wrapper function (start_l) exists, so
+ # another `next' is necessary.
+ gdb_test "next" ".*in start_l ().*" "step out of main"
+ }
+ -re "E32Main (.*).*$gdb_prompt $" {
+ # On SymbianOS there's a different function which calls main.
+ pass "step out of main"