• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

decomp / graphs / 9
91%

Build:
DEFAULT BRANCH: master
Ran 27 Mar 2015 05:38PM UTC
Jobs 1
Files 5
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
9

push

travis-ci

mewmew
iso: Verify that the entry node dominates the exit node for candidates. Fix crash in restructure when parsing pre-test loops using the list primitive; futher description below.

The reason for the crash is that the list is identified such that the entry node is at the pre-test loop body and the exit node is at the pre-test loop header. When the primitive is merged it creates two top-level nodes which breaks the precondition of the dominator calculation algorithm. A potential fix would be to check the dominance info (e.g. entry has to dominate exit for valid candidates).

* Before the patch when parsing bar.dot [1]:

$ restructure -v -prims="list.dot,pre_loop.dot" bar.dot
Isomorphism of "list" found at node "Y":
   "A"="Y"
   "B"="X"
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x18 pc=0x496a68]

goroutine 1 [running]:
github.com/mewfork/dot.buildDomTree(0xc20800ab00)
	/home/u/Desktop/go/src/github.com/mewfork/dot/dom.go:163 +0x478
github.com/mewfork/dot.(*Graph).Replace(0xc20800ab00, 0xc2080da530, 0x2, 0x2, 0xc2080da560, 0x5, 0xc2080c0e00, 0xc2080c0d80, 0x0, 0x0)
	/home/u/Desktop/go/src/github.com/mewfork/dot/graph.go:101 +0x8a5
decomp.org/x/graphs/merge.Merge(0xc20800ab00, 0xc2080dc840, 0xc2080b51d0, 0xc2080da560, 0x5, 0x0, 0x0)
	/home/u/Desktop/go/src/decomp.org/x/graphs/merge/merge.go:32 +0x890
main.findPrim(0xc20800ab00, 0x7, 0x0, 0x0)
	/home/u/Desktop/go/src/decomp.org/x/cmd/restructure/restructure.go:163 +0x16b
main.restructure(0x7ffcc5dbbc13, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/u/Desktop/go/src/decomp.org/x/cmd/restructure/restructure.go:126 +0x24b
main.main()
	/home/u/Desktop/go/src/decomp.org/x/cmd/restructure/restructure.go:98 +0xfe

* After the patch:

restructure -v -prims="list.dot,pre_loop.dot" bar.dot
Isomorphism of "pre_loop" found at node "X":
   "A"="X"
   "B"="Y"
   "C"="Z"
[{"prim":"pre_loop","node":"pre_loop0","nodes":{"A":"X","B":"Y","C":"Z"}}]

* References:

[1]: File contents for bar.dot follows.

digraph bar {
	X -> Y
	X -> Z
	Y -> X
	X [label="entry"]
	Y
	Z [label="exit"]
}

225 of 250 relevant lines covered (90.0%)

413.25 hits per line

Jobs
ID Job ID Ran Files Coverage
1 9.1 27 Mar 2015 05:38PM UTC 0
90.0
Travis Job 9.1
Source Files on build 9
Detailed source file information is not available for this build.
  • Back to Repo
  • Travis Build #9
  • 0b15b26c on github
  • Prev Build on master (#8)
  • Next Build on master (#10)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc