forked from OSchip/llvm-project
31 lines
881 B
C++
31 lines
881 B
C++
// Tests that we wouldn't generate an allocation call in global scope with (std::size_t, p0, ..., pn)
|
|
// RUN: %clang_cc1 %s -std=c++20 -S -triple x86_64-unknown-linux-gnu -emit-llvm -disable-llvm-passes %s -o - | FileCheck %s
|
|
#include "Inputs/coroutine.h"
|
|
|
|
namespace std {
|
|
typedef decltype(sizeof(int)) size_t;
|
|
}
|
|
|
|
struct Allocator {};
|
|
|
|
struct resumable {
|
|
struct promise_type {
|
|
|
|
resumable get_return_object() { return {}; }
|
|
auto initial_suspend() { return std::suspend_always(); }
|
|
auto final_suspend() noexcept { return std::suspend_always(); }
|
|
void unhandled_exception() {}
|
|
void return_void(){};
|
|
};
|
|
};
|
|
|
|
void *operator new(std::size_t, void *);
|
|
|
|
resumable f1(void *) {
|
|
co_return;
|
|
}
|
|
|
|
// CHECK: coro.alloc:
|
|
// CHECK-NEXT: [[SIZE:%.+]] = call [[BITWIDTH:.+]] @llvm.coro.size.[[BITWIDTH]]()
|
|
// CHECK-NEXT: call {{.*}} ptr @_Znwm([[BITWIDTH]] noundef [[SIZE]])
|