xref: /llvm-project/bolt/test/RISCV/fake-label-no-entry.c (revision e982032199bbc2feb5acec0f6ae023239a40c1ca)
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 
_start()18 void _start() {}
19