Ivana Ivanovska
ce2ff0a35d
Add support for int return type in Carbon/C++ interop (#5114)
Adding support for importing C++ functions with `int` return type in
Carbon.
Part of #5063
Here is a demo of the functionality:
```c++
// hello_int.h;
auto foo_int() -> int;
```
```c++
// hello_int.cpp
#include "hello_int.h"
auto foo_int() -> int {
return 1;
}
```
```carbon
// main.carbon
library "Main";
import Cpp library "hello_int.h";
import Core library "io";
fn Carbon_foo(b: i32) {
Core.Print(b);
}
fn Run() -> i32 {
Carbon_foo(Cpp.foo_int());
return 0;
}
```
```
$ clang -c hello_int.cpp
$ bazel-bin/toolchain/carbon compile main.carbon
$ bazel-bin/toolchain/carbon link hello_int.o main.o --output=demo
$ ./demo
1
```
2025-03-24 15:18:20 +00:00
..
2025-02-20 22:42:47 +00:00
2025-03-24 15:18:20 +00:00
2025-03-19 20:19:21 +00:00
2025-03-19 20:19:21 +00:00
2025-03-20 23:52:50 +00:00
2025-03-18 21:26:52 +00:00
2024-09-05 23:39:58 +00:00
2025-01-27 23:48:44 +00:00
2025-03-21 23:09:37 +00:00
2025-03-18 00:44:18 +00:00
2025-02-12 01:44:37 +00:00
2025-03-03 10:38:19 +00:00
2025-03-01 07:56:04 +00:00
2025-03-24 15:18:20 +00:00
2025-03-21 23:09:37 +00:00
2025-02-11 21:38:09 +00:00
2025-03-19 20:19:21 +00:00
2025-02-19 21:46:46 +00:00
2025-03-01 07:56:04 +00:00
2025-03-21 22:26:08 +00:00
2025-03-21 22:26:08 +00:00
2025-03-21 00:02:05 +00:00
2025-03-14 00:44:51 +00:00
2024-11-20 20:58:58 +00:00
2024-11-20 20:58:58 +00:00
2025-02-26 18:44:36 +00:00
2025-03-18 19:44:22 +00:00
2025-03-19 20:19:21 +00:00
2025-03-19 20:19:21 +00:00
2025-03-19 20:19:21 +00:00
2024-12-11 22:34:10 +00:00
2025-02-27 00:21:01 +00:00
2025-02-19 22:10:11 +00:00
2025-03-04 21:01:59 +00:00
2025-02-27 17:01:29 +00:00
2025-02-27 17:01:29 +00:00
2024-07-03 16:58:47 +00:00
2025-03-01 07:56:04 +00:00
2025-03-21 22:26:08 +00:00
2025-03-21 22:26:08 +00:00
2025-03-18 23:49:24 +00:00
2024-07-03 17:49:47 +00:00
2025-02-14 19:44:36 +00:00
2025-02-20 22:42:47 +00:00
2025-03-21 21:45:53 +00:00
2024-12-02 18:51:44 +00:00
2025-03-21 21:45:53 +00:00
2025-03-21 22:26:08 +00:00
2024-07-12 22:38:06 +00:00
2025-03-05 21:55:30 +00:00
2024-07-12 22:38:06 +00:00
2024-07-12 22:38:06 +00:00
2025-03-21 22:26:08 +00:00
2025-02-12 00:21:07 +00:00
2025-02-14 19:44:36 +00:00
2025-03-21 22:26:08 +00:00
2025-02-11 21:33:57 +00:00
2025-02-14 19:44:36 +00:00
2025-03-21 22:26:08 +00:00
2025-03-21 21:45:53 +00:00
2025-02-14 19:44:36 +00:00
2025-02-14 19:44:36 +00:00
2024-07-12 22:38:06 +00:00
2025-02-15 01:36:46 +00:00
2025-03-14 22:54:12 +00:00
2024-07-12 22:38:06 +00:00
2025-03-21 21:45:53 +00:00
2024-12-18 00:19:12 +00:00
2025-02-25 02:07:10 +00:00
2024-07-12 22:38:06 +00:00
2025-02-20 03:17:45 +00:00
2024-07-12 22:38:06 +00:00
2025-02-14 19:44:36 +00:00
2025-02-14 19:44:36 +00:00
2025-02-27 00:21:01 +00:00
2024-07-12 22:38:06 +00:00
2025-03-20 23:52:50 +00:00
2025-03-14 23:58:36 +00:00
2025-03-12 13:54:49 +00:00
2025-02-19 22:10:11 +00:00
2025-03-24 15:18:20 +00:00
2025-03-03 10:38:19 +00:00
2025-03-20 00:48:35 +00:00
2025-02-19 07:19:23 +00:00
2025-03-18 00:44:18 +00:00
2025-03-15 20:41:48 +00:00
2025-03-21 23:09:37 +00:00
2025-01-23 02:21:48 +00:00
2025-03-19 20:19:21 +00:00
2025-03-21 21:45:53 +00:00
2025-03-12 13:54:49 +00:00
2025-03-12 13:54:49 +00:00
2025-01-25 02:13:52 +00:00
2024-11-04 04:00:17 +00:00
2025-02-14 19:44:36 +00:00
2024-12-03 18:46:27 +00:00
2025-03-20 04:25:35 +00:00
2025-03-20 04:25:35 +00:00
2025-03-19 23:33:52 +00:00
2025-02-27 17:01:29 +00:00
2025-01-22 23:15:00 +00:00
2024-10-17 22:47:40 +00:00
2025-03-18 00:31:17 +00:00
2025-01-22 23:15:00 +00:00
2025-03-20 04:25:35 +00:00
2025-02-19 07:19:23 +00:00
2025-01-22 23:15:00 +00:00
2025-01-22 23:15:00 +00:00
2025-02-07 22:35:18 +00:00
2025-03-14 20:16:01 +00:00
2025-02-26 18:44:36 +00:00
2025-02-26 18:44:36 +00:00
2025-02-25 02:07:43 +00:00
2025-03-17 22:29:56 +00:00
2025-01-23 02:21:48 +00:00
2025-03-21 21:45:53 +00:00
2025-02-14 19:44:36 +00:00
2024-03-18 17:40:00 +00:00
2025-03-01 07:56:04 +00:00
2025-02-26 18:44:36 +00:00
2025-01-17 17:51:34 +00:00
2025-03-01 08:00:17 +00:00
2025-03-04 21:01:59 +00:00
2025-02-25 02:07:43 +00:00
2025-02-06 20:27:57 +00:00
2025-02-06 20:27:57 +00:00
2025-03-21 23:09:37 +00:00
2025-02-20 03:17:45 +00:00
2025-03-19 20:19:21 +00:00
2024-08-09 01:05:03 +00:00
2025-03-21 21:45:53 +00:00
2025-03-12 00:33:46 +00:00
2025-03-21 15:27:45 +00:00
2025-03-20 23:52:50 +00:00
2025-02-28 00:50:43 +00:00
2025-02-28 00:50:43 +00:00