summaryrefslogtreecommitdiffstats
path: root/js/src/devtools/rootAnalysis/t/exceptions/test.py
blob: f6d7f5e353f2704ab5da4916583a4ab13c2d6450 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
test.compile("source.cpp", '-fno-exceptions')
test.run_analysis_script('gcTypes')

hazards = test.load_hazards()
assert(len(hazards) == 0)

# If we compile with exceptions, then there *should* be a hazard because
# AutoSomething::AutoSomething might throw an exception, which would cause the
# partially-constructed value to be torn down, which will call ~RAII_GC.

test.compile("source.cpp", '-fexceptions')
test.run_analysis_script('gcTypes')

hazards = test.load_hazards()
assert(len(hazards) == 1)
hazard = hazards[0]
assert(hazard.function == 'void f()')
assert(hazard.variable == 'thing')
assert("AutoSomething::AutoSomething" in hazard.GCFunction)