1/// Verify that unnamed symbols are not added as function entry points. Such
2/// symbols are used by relocations in debugging sections.
3
4// clang-format off
5
6// RUN: %clang %cflags -g -Wl,-q -o %t %s
7
8/// Verify that the binary indeed contains a fake label ".L0 " at _start.
9// RUN: llvm-readelf -s %t | FileCheck %s --check-prefix=CHECK-ELF
10// CHECK-ELF-DAG: [[#%x,START:]] {{.*}} FUNC GLOBAL DEFAULT [[#%d,SECTION:]] _start{{$}}
11// CHECK-ELF-DAG: [[#%x,START]] {{.*}} NOTYPE LOCAL DEFAULT [[#SECTION]] .L0 {{$}}
12
13/// Verify that BOLT did not create an extra entry point for the fake label.
14// RUN: llvm-bolt -o %t.bolt %t --print-cfg | FileCheck %s
15// CHECK: Binary Function "_start" after building cfg {
16// CHECK: IsMultiEntry: 0
17
18void _start() {}
19

source code of bolt/test/RISCV/fake-label-no-entry.c