brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 94b04c5 Raw
111 lines · plain
1; Test the --syms option for xcoff object files.2; Also test the --symbol-description option for xcoff object files, when specified with --syms.3; RUN: llc -mtriple powerpc-ibm-aix -mcpu=pwr4 -filetype=obj -o %t.o < %s4; RUN: llvm-objdump --syms %t.o | FileCheck -D#NFA=2 --check-prefix=SYM %s5; RUN: llvm-objdump --syms --symbol-description %t.o | FileCheck -D#NFA=2 --check-prefix=SYM-DES %s6 7;; The IR below is generated by the following source code.8;; bash> cat test.c9;; const char* con= "Test for --symbols";10;;  int i;11;;  char c ;12;;  char *ap;13;;  float f;14;;  long long ll;15;;  static int si;16;;  extern int ei;17;; int  bar(const char *v) {18;;    si = 1;19;;    return (int)v[0] + (int)v[2] + si + ei;20;; }21;;22;; void foo() {23;;    bar(con);24;; }25;;26;; __attribute__ ((weak)) int wi=2;27 28 29@.str = private unnamed_addr constant [19 x i8] c"Test for --symbols\00", align 130@con = global i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str, i32 0, i32 0), align 431@si = internal global i32 0, align 432@ei = external global i32, align 433@wi = weak global i32 2, align 434@i = global i32 0, align 435@c = global i8 0, align 136@ap = global i8* null, align 437@f = global float 0.000000e+00, align 438@ll = global i64 0, align 839 40define i32 @bar(i8* %v)  {41entry:42  %v.addr = alloca i8*, align 443  store i8* %v, i8** %v.addr, align 444  store i32 1, i32* @si, align 445  %0 = load i8*, i8** %v.addr, align 446  %arrayidx = getelementptr inbounds i8, i8* %0, i32 047  %1 = load i8, i8* %arrayidx, align 148  %conv = zext i8 %1 to i3249  %2 = load i8*, i8** %v.addr, align 450  %arrayidx1 = getelementptr inbounds i8, i8* %2, i32 251  %3 = load i8, i8* %arrayidx1, align 152  %conv2 = zext i8 %3 to i3253  %add = add nsw i32 %conv, %conv254  %4 = load i32, i32* @si, align 455  %add3 = add nsw i32 %add, %456  %5 = load i32, i32* @ei, align 457  %add4 = add nsw i32 %add3, %558  ret i32 %add459}60 61define void @foo()  {62entry:63  %0 = load i8*, i8** @con, align 464  %call = call i32 @bar(i8* %0)65  ret void66}67 68; SYM:      SYMBOL TABLE:69; SYM-NEXT: 00000000      df *DEBUG*    00000000 .file70; SYM-NEXT: 00000000         *UND*      00000000 ei71; SYM-NEXT: 00000000 l       .text      00000091 72; SYM-NEXT: 00000000 g     F .text (csect: )       00000000 .bar73; SYM-NEXT: 00000050 g     F .text (csect: )       00000000 .foo74; SYM-NEXT: 00000094 l       .text      00000013 L...str75; SYM-NEXT: 000000a8 g     O .data      00000004 con76; SYM-NEXT: 000000ac  w    O .data      00000004 wi77; SYM-NEXT: 000000b0 g     O .data      00000004 i78; SYM-NEXT: 000000b4 g     O .data      00000001 c79; SYM-NEXT: 000000b8 g     O .data      00000004 ap80; SYM-NEXT: 000000bc g     O .data      00000004 f81; SYM-NEXT: 000000c0 g     O .data      00000008 ll82; SYM-NEXT: 000000c8 g     O .data      0000000c bar83; SYM-NEXT: 000000d4 g     O .data      0000000c foo84; SYM-NEXT: 000000e0 l       .data      00000000 TOC85; SYM-NEXT: 000000e0 l     O .data      00000004 si86; SYM-NEXT: 000000e4 l     O .data      00000004 ei87; SYM-NEXT: 000000e8 l     O .data      00000004 con88; SYM-NEXT: 000000ec l     O *COM*      00000004 si89 90; SYM-DES:      SYMBOL TABLE:91; SYM-DES-NEXT: 00000000      df *DEBUG*    00000000 (idx: 0) .file92; SYM-DES-NEXT: 00000000         *UND*      00000000 (idx: [[#NFA+1]]) ei[UA]93; SYM-DES-NEXT: 00000000 l       .text      00000091 (idx: [[#NFA+3]]) [PR]94; SYM-DES-NEXT: 00000000 g     F .text (csect: (idx: [[#NFA+3]]) [PR])  00000000 (idx: [[#NFA+5]]) .bar95; SYM-DES-NEXT: 00000050 g     F .text (csect: (idx: [[#NFA+3]]) [PR])  00000000 (idx: [[#NFA+7]]) .foo96; SYM-DES-NEXT: 00000094 l       .text      00000013 (idx: [[#NFA+9]]) L...str[RO]97; SYM-DES-NEXT: 000000a8 g     O .data      00000004 (idx: [[#NFA+11]]) con[RW]98; SYM-DES-NEXT: 000000ac  w    O .data      00000004 (idx: [[#NFA+13]]) wi[RW]99; SYM-DES-NEXT: 000000b0 g     O .data      00000004 (idx: [[#NFA+15]]) i[RW]100; SYM-DES-NEXT: 000000b4 g     O .data      00000001 (idx: [[#NFA+17]]) c[RW]101; SYM-DES-NEXT: 000000b8 g     O .data      00000004 (idx: [[#NFA+19]]) ap[RW]102; SYM-DES-NEXT: 000000bc g     O .data      00000004 (idx: [[#NFA+21]]) f[RW]103; SYM-DES-NEXT: 000000c0 g     O .data      00000008 (idx: [[#NFA+23]]) ll[RW]104; SYM-DES-NEXT: 000000c8 g     O .data      0000000c (idx: [[#NFA+25]]) bar[DS]105; SYM-DES-NEXT: 000000d4 g     O .data      0000000c (idx: [[#NFA+27]]) foo[DS]106; SYM-DES-NEXT: 000000e0 l       .data      00000000 (idx: [[#NFA+29]]) TOC[TC0]107; SYM-DES-NEXT: 000000e0 l     O .data      00000004 (idx: [[#NFA+31]]) si[TC]108; SYM-DES-NEXT: 000000e4 l     O .data      00000004 (idx: [[#NFA+33]]) ei[TC]109; SYM-DES-NEXT: 000000e8 l     O .data      00000004 (idx: [[#NFA+35]]) con[TC]110; SYM-DES-NEXT: 000000ec l     O *COM*      00000004 (idx: [[#NFA+37]]) si[BS]111