| Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -globalopt -S | not grep global | 
| Chris Lattner | ed8d767 | 2004-10-09 21:50:05 +0000 | [diff] [blame] | 2 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 3 | @G = internal global void ()* null ; <void ()**> [#uses=2] | 
| Chris Lattner | ed8d767 | 2004-10-09 21:50:05 +0000 | [diff] [blame] | 4 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 5 | define internal void @Actual() { | 
| 6 | ret void | ||||
| Chris Lattner | ed8d767 | 2004-10-09 21:50:05 +0000 | [diff] [blame] | 7 | } | 
| 8 | |||||
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 9 | define void @init() { | 
| 10 | store void ()* @Actual, void ()** @G | ||||
| 11 | ret void | ||||
| Chris Lattner | ed8d767 | 2004-10-09 21:50:05 +0000 | [diff] [blame] | 12 | } | 
| 13 | |||||
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 14 | define void @doit() { | 
| 15 | %FP = load void ()** @G ; <void ()*> [#uses=1] | ||||
| 16 | call void %FP( ) | ||||
| 17 | ret void | ||||
| Chris Lattner | ed8d767 | 2004-10-09 21:50:05 +0000 | [diff] [blame] | 18 | } | 
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 19 | |