set test "inherit"
set ::result_string {1
2
3
4
42
{.foo=42, .bar={...}}
{.foo=42, .bar={.x=3, .y=4}}}

proc dyninst_kfails {index} {
    # The dyninst runtime isn't multi-arch, it only works on the
    # native architecture. PR14490.
    if {! [all_compile_flag_native_p $index]} {
	setup_kfail 14490 "*-*-*"
    }
}

set srcfile "$srcdir/$subdir/$test.cxx"
set stpfile "$srcdir/$subdir/$test.stp"
for {set i 0} {$i < [all_compile_flags]} {incr i} {
  set extra_flag [all_compile_flag $i]
  set extra_name [all_compile_flag_name $i]

  set test_flags "compiler=g++ additional_flags=-g $extra_flag"
  set res [target_compile "$srcfile" $test.exe executable "$test_flags"]
  if { $res != "" } {
      verbose "target_compile failed: $res" 2
      fail "$test-$extra_name compile"
      untested "$test-$extra_name"
      continue
  } else {
      pass "$test-$extra_name compile"
  }

  if {[installtest_p]} {
    foreach runtime [get_runtime_list] {
      if {$runtime != ""} {
	if {[info procs ${runtime}_kfails] ne ""} { ${runtime}_kfails $i }
	stap_run3 "$test-$extra_name-$runtime" -w "$stpfile" $test.exe \
	  -c ./$test.exe --runtime=$runtime
      } elseif {[uprobes_p]} {
	stap_run3 "$test-$extra_name" -w "$stpfile" $test.exe -c ./$test.exe
      } else {
	untested "$test-$extra_name"
      }
    }
  } else {
    untested "$test-$extra_name"
  }
  catch {exec rm -f $test.exe}
}
