| // Copyright 2013 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // +build gc |
| |
| #include "_cgo_export.h" |
| #include <stdint.h> |
| #include <stdio.h> |
| #include <stdlib.h> |
| |
| /* Test calling panic from C. This is what SWIG does. */ |
| |
| extern void crosscall2(void (*fn)(void *, int), void *, int); |
| extern void _cgo_panic(void *, int); |
| extern void _cgo_allocate(void *, int); |
| |
| void |
| callPanic(void) |
| { |
| struct { const char *p; } a; |
| a.p = "panic from C"; |
| crosscall2(_cgo_panic, &a, sizeof a); |
| *(int*)1 = 1; |
| } |