| Tanya Lattner | d9a3ceb | 2004-11-06 22:29:57 +0000 | [diff] [blame] | 1 | // RUN: %llvmgxx -S %s -o - | llvm-as -f -o /dev/null | 
|  | 2 |  | 
| Chris Lattner | ff06e88 | 2003-09-29 21:53:04 +0000 | [diff] [blame] | 3 | // Non-POD classes cannot be passed into a function by component, because their | 
|  | 4 | // dtors must be run.  Instead, pass them in by reference.  The C++ front-end | 
|  | 5 | // was mistakenly "thinking" that 'foo' took a structure by component. | 
|  | 6 |  | 
| Chris Lattner | 4a9eeed | 2003-09-29 21:18:36 +0000 | [diff] [blame] | 7 | struct C { | 
| Jeff Cohen | 8047f13 | 2005-04-23 21:26:11 +0000 | [diff] [blame] | 8 | int A, B; | 
|  | 9 | ~C() {} | 
| Chris Lattner | 4a9eeed | 2003-09-29 21:18:36 +0000 | [diff] [blame] | 10 | }; | 
|  | 11 |  | 
| Chris Lattner | ff06e88 | 2003-09-29 21:53:04 +0000 | [diff] [blame] | 12 | void foo(C b); | 
|  | 13 |  | 
| Chris Lattner | 4a9eeed | 2003-09-29 21:18:36 +0000 | [diff] [blame] | 14 | void test(C *P) { | 
| Jeff Cohen | 8047f13 | 2005-04-23 21:26:11 +0000 | [diff] [blame] | 15 | foo(*P); | 
| Chris Lattner | 4a9eeed | 2003-09-29 21:18:36 +0000 | [diff] [blame] | 16 | } | 
|  | 17 |  |