• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4 
5 //go:build gc
6 
7 #include "_cgo_export.h"
8 #include <stdint.h>
9 #include <stdio.h>
10 #include <stdlib.h>
11 
12 /* Test calling panic from C.  This is what SWIG does.  */
13 
14 extern void crosscall2(void (*fn)(void *, int), void *, int);
15 extern void _cgo_panic(void *, int);
16 extern void _cgo_allocate(void *, int);
17 
18 void
callPanic(void)19 callPanic(void)
20 {
21 	struct { const char *p; } a;
22 	a.p = "panic from C";
23 	crosscall2(_cgo_panic, &a, sizeof a);
24 	*(int*)1 = 1;
25 }
26