Skip to content

Commit 1bf1742

Browse files
authored
Merge pull request #359 from Xilinx/bump_to_3c537459
[AutoBump] Merge with 3c53745 (Aug 20) (6)
2 parents c6a666f + 3c6a3ce commit 1bf1742

File tree

70 files changed

+657
-345
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+657
-345
lines changed

clang-tools-extra/clang-doc/HTMLGenerator.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -678,6 +678,19 @@ static std::unique_ptr<HTMLNode> genHTML(const CommentInfo &I) {
678678
return std::move(ParagraphComment);
679679
}
680680

681+
if (I.Kind == "BlockCommandComment") {
682+
auto BlockComment = std::make_unique<TagNode>(HTMLTag::TAG_DIV);
683+
BlockComment->Children.emplace_back(
684+
std::make_unique<TagNode>(HTMLTag::TAG_DIV, I.Name));
685+
for (const auto &Child : I.Children) {
686+
std::unique_ptr<HTMLNode> Node = genHTML(*Child);
687+
if (Node)
688+
BlockComment->Children.emplace_back(std::move(Node));
689+
}
690+
if (BlockComment->Children.empty())
691+
return nullptr;
692+
return std::move(BlockComment);
693+
}
681694
if (I.Kind == "TextComment") {
682695
if (I.Text == "")
683696
return nullptr;

clang-tools-extra/test/clang-doc/basic-project.test

Lines changed: 68 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,32 +56,62 @@
5656

5757
// HTML-SHAPE: <h1>class Shape</h1>
5858
// HTML-SHAPE: <p>Defined at line 8 of file {{.*}}Shape.h</p>
59+
// HTML-SHAPE: <div>brief</div>
60+
// HTML-SHAPE: <p> Abstract base class for shapes.</p>
5961
// HTML-SHAPE: <p> Provides a common interface for different types of shapes.</p>
6062
// HTML-SHAPE: <h2 id="Functions">Functions</h2>
6163
// HTML-SHAPE: <h3 id="{{([0-9A-F]{40})}}">area</h3>
6264
// HTML-SHAPE: <p>public double area()</p>
65+
// HTML-SHAPE: <div>brief</div>
66+
// HTML-SHAPE: <p> Calculates the area of the shape.</p>
6367
// HTML-SHAPE: <h3 id="{{([0-9A-F]{40})}}">perimeter</h3>
6468
// HTML-SHAPE: <p>public double perimeter()</p>
69+
// HTML-SHAPE: <div>brief</div>
70+
// HTML-SHAPE: <p> Calculates the perimeter of the shape.</p>
71+
// HTML-SHAPE: <div>return</div>
72+
// HTML-SHAPE: <p> double The perimeter of the shape.</p>
6573
// HTML-SHAPE: <h3 id="{{([0-9A-F]{40})}}">~Shape</h3>
6674
// HTML-SHAPE: <p>public void ~Shape()</p>
6775
// HTML-SHAPE: <p>Defined at line 13 of file {{.*}}Shape.h</p>
76+
// HTML-SHAPE: <div>brief</div>
77+
// HTML-SHAPE: <p> Virtual destructor.</p>
6878

69-
// HTML-CALC: <h1>class Calculator</h1>
70-
// HTML-CALC: <p>Defined at line 8 of file {{.*}}Calculator.h</p>
71-
// HTML-CALC: <p> Provides basic arithmetic operations.</p>
72-
// HTML-CALC: <h2 id="Functions">Functions</h2>
73-
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">add</h3>
74-
// HTML-CALC: <p>public int add(int a, int b)</p>
75-
// HTML-CALC: <p>Defined at line 3 of file {{.*}}Calculator.cpp</p>
76-
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">subtract</h3>
77-
// HTML-CALC: <p>public int subtract(int a, int b)</p>
78-
// HTML-CALC: <p>Defined at line 7 of file {{.*}}Calculator.cpp</p>
79-
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">multiply</h3>
80-
// HTML-CALC: <p>public int multiply(int a, int b)</p>
81-
// HTML-CALC: <p>Defined at line 11 of file {{.*}}Calculator.cpp</p>
82-
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">divide</h3>
83-
// HTML-CALC: <p>public double divide(int a, int b)</p>
84-
// HTML-CALC: <p>Defined at line 15 of file {{.*}}Calculator.cpp</p>
79+
// HTML-CALC: <h1>class Calculator</h1>
80+
// HTML-CALC: <p>Defined at line 8 of file {{.*}}Calculator.h</p>
81+
// HTML-CALC: <div>brief</div>
82+
// HTML-CALC: <p> A simple calculator class.</p>
83+
// HTML-CALC: <p> Provides basic arithmetic operations.</p>
84+
// HTML-CALC: <h2 id="Functions">Functions</h2>
85+
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">add</h3>
86+
// HTML-CALC: <p>public int add(int a, int b)</p>
87+
// HTML-CALC: <p>Defined at line 3 of file {{.*}}Calculator.cpp</p>
88+
// HTML-CALC: <div>brief</div>
89+
// HTML-CALC: <p> Adds two integers.</p>
90+
// HTML-CALC: <div>return</div>
91+
// HTML-CALC: <p> int The sum of a and b.</p>
92+
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">subtract</h3>
93+
// HTML-CALC: <p>public int subtract(int a, int b)</p>
94+
// HTML-CALC: <p>Defined at line 7 of file {{.*}}Calculator.cpp</p>
95+
// HTML-CALC: <div>brief</div>
96+
// HTML-CALC: <p> Subtracts the second integer from the first.</p>
97+
// HTML-CALC: <div>return</div>
98+
// HTML-CALC: <p> int The result of a - b.</p>
99+
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">multiply</h3>
100+
// HTML-CALC: <p>public int multiply(int a, int b)</p>
101+
// HTML-CALC: <p>Defined at line 11 of file {{.*}}Calculator.cpp</p>
102+
// HTML-CALC: <div>brief</div>
103+
// HTML-CALC: <p> Multiplies two integers.</p>
104+
// HTML-CALC: <div>return</div>
105+
// HTML-CALC: <p> int The product of a and b.</p>
106+
// HTML-CALC: <h3 id="{{([0-9A-F]{40})}}">divide</h3>
107+
// HTML-CALC: <p>public double divide(int a, int b)</p>
108+
// HTML-CALC: <p>Defined at line 15 of file {{.*}}Calculator.cpp</p>
109+
// HTML-CALC: <div>brief</div>
110+
// HTML-CALC: <p> Divides the first integer by the second.</p>
111+
// HTML-CALC: <div>return</div>
112+
// HTML-CALC: <p> double The result of a / b.</p>
113+
// HTML-CALC: <div>throw</div>
114+
// HTML-CALC: <p>if b is zero.</p>
85115

86116
// HTML-RECTANGLE: <h1>class Rectangle</h1>
87117
// HTML-RECTANGLE: <p>Defined at line 10 of file {{.*}}Rectangle.h</p>
@@ -99,15 +129,27 @@
99129
// HTML-RECTANGLE: <h3 id="{{([0-9A-F]{40})}}">Rectangle</h3>
100130
// HTML-RECTANGLE: <p>public void Rectangle(double width, double height)</p>
101131
// HTML-RECTANGLE: <p>Defined at line 3 of file {{.*}}Rectangle.cpp</p>
132+
// HTML-RECTANGLE: <div>brief</div>
133+
// HTML-RECTANGLE: <p> Constructs a new Rectangle object.</p>
102134
// HTML-RECTANGLE: <h3 id="{{([0-9A-F]{40})}}">area</h3>
103135
// HTML-RECTANGLE: <p>public double area()</p>
104136
// HTML-RECTANGLE: <p>Defined at line 6 of file {{.*}}Rectangle.cpp</p>
137+
// HTML-RECTANGLE: <div>brief</div>
138+
// HTML-RECTANGLE: <p> Calculates the area of the rectangle.</p>
139+
// HTML-RECTANGLE: <div>return</div>
140+
// HTML-RECTANGLE: <p> double The area of the rectangle.</p>
105141
// HTML-RECTANGLE: <h3 id="{{([0-9A-F]{40})}}">perimeter</h3>
106142
// HTML-RECTANGLE: <p>public double perimeter()</p>
107143
// HTML-RECTANGLE: <p>Defined at line 10 of file {{.*}}Rectangle.cpp</p>
144+
// HTML-RECTANGLE: <div>brief</div>
145+
// HTML-RECTANGLE: <p> Calculates the perimeter of the rectangle.</p>
146+
// HTML-RECTANGLE: <div>return</div>
147+
// HTML-RECTANGLE: <p> double The perimeter of the rectangle.</p>
108148

109149
// HTML-CIRCLE: <h1>class Circle</h1>
110150
// HTML-CIRCLE: <p>Defined at line 10 of file {{.*}}Circle.h</p>
151+
// HTML-CIRCLE: <div>brief</div>
152+
// HTML-CIRCLE: <p> Circle class derived from Shape.</p>
111153
// HTML-CIRCLE: <p> Represents a circle with a given radius.</p>
112154
// HTML-CIRCLE: <p>
113155
// HTML-CIRCLE: Inherits from
@@ -120,12 +162,22 @@
120162
// HTML-CIRCLE: <h3 id="{{([0-9A-F]{40})}}">Circle</h3>
121163
// HTML-CIRCLE: <p>public void Circle(double radius)</p>
122164
// HTML-CIRCLE: <p>Defined at line 3 of file {{.*}}Circle.cpp</p>
165+
// HTML-CIRCLE: <div>brief</div>
166+
// HTML-CIRCLE: <p> Constructs a new Circle object.</p>
123167
// HTML-CIRCLE: <h3 id="{{([0-9A-F]{40})}}">area</h3>
124168
// HTML-CIRCLE: <p>public double area()</p>
125169
// HTML-CIRCLE: <p>Defined at line 5 of file {{.*}}Circle.cpp</p>
170+
// HTML-CIRCLE: <div>brief</div>
171+
// HTML-CIRCLE: <p> Calculates the area of the circle.</p>
172+
// HTML-CIRCLE: <div>return</div>
173+
// HTML-CIRCLE: <p> double The area of the circle.</p>
126174
// HTML-CIRCLE: <h3 id="{{([0-9A-F]{40})}}">perimeter</h3>
127175
// HTML-CIRCLE: <p>public double perimeter()</p>
128176
// HTML-CIRCLE: <p>Defined at line 9 of file {{.*}}Circle.cpp</p>
177+
// HTML-CIRCLE: <div>brief</div>
178+
// HTML-CIRCLE: <p> Calculates the perimeter of the circle.</p>
179+
// HTML-CIRCLE: <div>return</div>
180+
// HTML-CIRCLE: <p> double The perimeter of the circle.</p>
129181

130182
// MD-CALC: # class Calculator
131183
// MD-CALC: *Defined at .{{[\/]}}include{{[\/]}}Calculator.h#8*

clang/lib/AST/ByteCode/Compiler.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
214214
unsigned DerivedOffset = collectBaseOffset(QualType(ToMP->getClass(), 0),
215215
QualType(FromMP->getClass(), 0));
216216

217-
if (!this->visit(SubExpr))
217+
if (!this->delegate(SubExpr))
218218
return false;
219219

220220
return this->emitGetMemberPtrBasePop(DerivedOffset, CE);
@@ -229,14 +229,14 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
229229
unsigned DerivedOffset = collectBaseOffset(QualType(FromMP->getClass(), 0),
230230
QualType(ToMP->getClass(), 0));
231231

232-
if (!this->visit(SubExpr))
232+
if (!this->delegate(SubExpr))
233233
return false;
234234
return this->emitGetMemberPtrBasePop(-DerivedOffset, CE);
235235
}
236236

237237
case CK_UncheckedDerivedToBase:
238238
case CK_DerivedToBase: {
239-
if (!this->visit(SubExpr))
239+
if (!this->delegate(SubExpr))
240240
return false;
241241

242242
const auto extractRecordDecl = [](QualType Ty) -> const CXXRecordDecl * {
@@ -265,7 +265,7 @@ bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) {
265265
}
266266

267267
case CK_BaseToDerived: {
268-
if (!this->visit(SubExpr))
268+
if (!this->delegate(SubExpr))
269269
return false;
270270

271271
unsigned DerivedOffset =

clang/lib/AST/ByteCode/Interp.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1568,7 +1568,7 @@ inline bool GetPtrBase(InterpState &S, CodePtr OpPC, uint32_t Off) {
15681568
if (!CheckSubobject(S, OpPC, Ptr, CSK_Base))
15691569
return false;
15701570
const Pointer &Result = Ptr.atField(Off);
1571-
if (Result.isPastEnd())
1571+
if (Result.isPastEnd() || !Result.isBaseClass())
15721572
return false;
15731573
S.Stk.push<Pointer>(Result);
15741574
return true;
@@ -1581,7 +1581,7 @@ inline bool GetPtrBasePop(InterpState &S, CodePtr OpPC, uint32_t Off) {
15811581
if (!CheckSubobject(S, OpPC, Ptr, CSK_Base))
15821582
return false;
15831583
const Pointer &Result = Ptr.atField(Off);
1584-
if (Result.isPastEnd())
1584+
if (Result.isPastEnd() || !Result.isBaseClass())
15851585
return false;
15861586
S.Stk.push<Pointer>(Result);
15871587
return true;

clang/test/AST/ByteCode/builtin-functions.cpp

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,51 @@ namespace isfpclass {
193193
char isfpclass_snan_3 [!__builtin_isfpclass(__builtin_nans(""), 0x01F8) ? 1 : -1]; // fcFinite
194194
}
195195

196+
namespace signbit {
197+
static_assert(
198+
!__builtin_signbit(1.0) && __builtin_signbit(-1.0) && !__builtin_signbit(0.0) && __builtin_signbit(-0.0) &&
199+
!__builtin_signbitf(1.0f) && __builtin_signbitf(-1.0f) && !__builtin_signbitf(0.0f) && __builtin_signbitf(-0.0f) &&
200+
!__builtin_signbitl(1.0L) && __builtin_signbitf(-1.0L) && !__builtin_signbitf(0.0L) && __builtin_signbitf(-0.0L) &&
201+
!__builtin_signbit(1.0f) && __builtin_signbit(-1.0f) && !__builtin_signbit(0.0f) && __builtin_signbit(-0.0f) &&
202+
!__builtin_signbit(1.0L) && __builtin_signbit(-1.0L) && !__builtin_signbit(0.0L) && __builtin_signbit(-0.0L) &&
203+
true, ""
204+
);
205+
}
206+
207+
namespace floating_comparison {
208+
#define LESS(X, Y) \
209+
!__builtin_isgreater(X, Y) && __builtin_isgreater(Y, X) && \
210+
!__builtin_isgreaterequal(X, Y) && __builtin_isgreaterequal(Y, X) && \
211+
__builtin_isless(X, Y) && !__builtin_isless(Y, X) && \
212+
__builtin_islessequal(X, Y) && !__builtin_islessequal(Y, X) && \
213+
__builtin_islessgreater(X, Y) && __builtin_islessgreater(Y, X) && \
214+
!__builtin_isunordered(X, Y) && !__builtin_isunordered(Y, X)
215+
#define EQUAL(X, Y) \
216+
!__builtin_isgreater(X, Y) && !__builtin_isgreater(Y, X) && \
217+
__builtin_isgreaterequal(X, Y) && __builtin_isgreaterequal(Y, X) && \
218+
!__builtin_isless(X, Y) && !__builtin_isless(Y, X) && \
219+
__builtin_islessequal(X, Y) && __builtin_islessequal(Y, X) && \
220+
!__builtin_islessgreater(X, Y) && !__builtin_islessgreater(Y, X) && \
221+
!__builtin_isunordered(X, Y) && !__builtin_isunordered(Y, X)
222+
#define UNORDERED(X, Y) \
223+
!__builtin_isgreater(X, Y) && !__builtin_isgreater(Y, X) && \
224+
!__builtin_isgreaterequal(X, Y) && !__builtin_isgreaterequal(Y, X) && \
225+
!__builtin_isless(X, Y) && !__builtin_isless(Y, X) && \
226+
!__builtin_islessequal(X, Y) && !__builtin_islessequal(Y, X) && \
227+
!__builtin_islessgreater(X, Y) && !__builtin_islessgreater(Y, X) && \
228+
__builtin_isunordered(X, Y) && __builtin_isunordered(Y, X)
229+
230+
static_assert(
231+
LESS(0.0, 1.0) && EQUAL(1.0, 1.0) && EQUAL(0.0, -0.0) &&
232+
UNORDERED(__builtin_nan(""), 1.0) && UNORDERED(__builtin_nan(""), __builtin_inf()) && LESS(0.0, __builtin_inf()) &&
233+
LESS(0.0f, 1.0f) && EQUAL(1.0f, 1.0f) && EQUAL(0.0f, -0.0f) &&
234+
UNORDERED(__builtin_nanf(""), 1.0f) && UNORDERED(__builtin_nanf(""), __builtin_inff()) && LESS(0.0f, __builtin_inff()) &&
235+
LESS(0.0L, 1.0L) && EQUAL(1.0L, 1.0L) && EQUAL(0.0L, -0.0L) &&
236+
UNORDERED(__builtin_nanl(""), 1.0L) && UNORDERED(__builtin_nanl(""), __builtin_infl()) && LESS(0.0L, __builtin_infl()) &&
237+
true, ""
238+
);
239+
}
240+
196241
namespace fpclassify {
197242
char classify_nan [__builtin_fpclassify(+1, -1, -1, -1, -1, __builtin_nan(""))];
198243
char classify_snan [__builtin_fpclassify(+1, -1, -1, -1, -1, __builtin_nans(""))];
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// Check that we can still observe the value of the coroutine frame
2+
// with optimizations.
3+
//
4+
// RUN: %clang_cc1 -triple x86_64-unknown-linux-gnu -std=c++20 \
5+
// RUN: -emit-llvm %s -debug-info-kind=limited -dwarf-version=5 \
6+
// RUN: -O2 -o - | FileCheck %s
7+
8+
#include "Inputs/coroutine.h"
9+
10+
template <>
11+
struct std::coroutine_traits<void> {
12+
struct promise_type {
13+
void get_return_object();
14+
std::suspend_always initial_suspend();
15+
std::suspend_always final_suspend() noexcept;
16+
void return_void();
17+
void unhandled_exception();
18+
};
19+
};
20+
21+
struct ScalarAwaiter {
22+
template <typename F> void await_suspend(F);
23+
bool await_ready();
24+
int await_resume();
25+
};
26+
27+
extern "C" void UseScalar(int);
28+
29+
extern "C" void f() {
30+
UseScalar(co_await ScalarAwaiter{});
31+
32+
int Val = co_await ScalarAwaiter{};
33+
34+
co_await ScalarAwaiter{};
35+
}
36+
37+
// CHECK: define {{.*}}@f.resume({{.*}} %[[ARG:.*]])
38+
// CHECK: #dbg_value(ptr %[[ARG]], ![[CORO_NUM:[0-9]+]], !DIExpression(DW_OP_deref)
39+
// CHECK: ![[CORO_NUM]] = !DILocalVariable(name: "__coro_frame"

clang/test/Modules/merge-using-decls.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -x c++ -I%S/Inputs/merge-using-decls -verify -std=c++11 %s -DORDER=2
99

1010
// RUN: %clang_cc1 -fexperimental-new-constant-interpreter -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -x c++ -I%S/Inputs/merge-using-decls -verify -std=c++17 %s -DORDER=2
11+
// RUN: %clang_cc1 -fexperimental-new-constant-interpreter -fmodules -fimplicit-module-maps -fexperimental-new-constant-interpreter -fmodules-cache-path=%t -x c++ -I%S/Inputs/merge-using-decls -verify -std=c++98 %s -DORDER=1
1112

1213
#if ORDER == 1
1314
#include "a.h"

lld/COFF/Symbols.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,13 @@ DefinedImportThunk::DefinedImportThunk(COFFLinkerContext &ctx, StringRef name,
126126

127127
Defined *Undefined::getWeakAlias() {
128128
// A weak alias may be a weak alias to another symbol, so check recursively.
129-
for (Symbol *a = weakAlias; a; a = cast<Undefined>(a)->weakAlias)
129+
DenseSet<Symbol *> weakChain;
130+
for (Symbol *a = weakAlias; a; a = cast<Undefined>(a)->weakAlias) {
130131
if (auto *d = dyn_cast<Defined>(a))
131132
return d;
133+
if (!weakChain.insert(a).second)
134+
break; // We have a cycle.
135+
}
132136
return nullptr;
133137
}
134138

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
REQUIRES: x86
2+
RUN: split-file %s %t.dir && cd %t.dir
3+
4+
RUN: llvm-mc -filetype=obj -triple=x86_64-windows test.s -o test.obj
5+
RUN: llvm-mc -filetype=obj -triple=x86_64-windows sym2.s -o sym2.obj
6+
RUN: llvm-mc -filetype=obj -triple=x86_64-windows def.s -o def.obj
7+
8+
RUN: not lld-link -machine:amd64 -dll -noentry -out:test.dll test.obj sym2.obj 2>&1 | FileCheck -check-prefix=ERR %s
9+
10+
ERR: error: undefined symbol: testsym
11+
ERR-NEXT: >>> referenced by test.obj
12+
ERR-EMPTY:
13+
ERR-NEXT: error: undefined symbol: sym1
14+
ERR-NEXT: >>> referenced by test.obj
15+
ERR-NEXT: >>> referenced by sym2.obj
16+
ERR-EMPTY:
17+
ERR-NEXT: error: undefined symbol: sym2
18+
ERR-NEXT: >>> referenced by test.obj
19+
ERR-NEXT: >>> referenced by sym2.obj
20+
21+
Depending on symbol processing order, we may have temporary weak reference cycles:
22+
23+
RUN: lld-link -machine:amd64 -dll -noentry -out:test.dll test.obj sym2.obj def.obj
24+
RUN: lld-link -machine:amd64 -dll -noentry -out:test.dll test.obj def.obj sym2.obj
25+
RUN: lld-link -machine:amd64 -dll -noentry -out:test.dll def.obj test.obj sym2.obj
26+
27+
#--- test.s
28+
.weak testsym
29+
.set testsym, sym1
30+
.weak sym1
31+
.set sym1, sym2
32+
33+
#--- sym2.s
34+
.weak sym2
35+
.set sym2, sym1
36+
37+
#--- def.s
38+
.globl sym1
39+
.data
40+
sym1:
41+
.word 0

lld/test/ELF/exclude-libs.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t.o
44
// RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux \
55
// RUN: %p/Inputs/exclude-libs.s -o %t2.o
6-
// RUN: llvm-as --data-layout=elf %p/Inputs/exclude-libs.ll -o %t3.o
6+
// RUN: llvm-as --data-layout=e %p/Inputs/exclude-libs.ll -o %t3.o
77
// RUN: mkdir -p %t.dir
88
// RUN: rm -f %t.dir/exc.a
99
// RUN: llvm-ar rcs %t.dir/exc.a %t2.o %t3.o

lldb/source/API/SBBreakpoint.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ uint32_t SBBreakpoint::GetIgnoreCount() const {
342342
return count;
343343
}
344344

345-
void SBBreakpoint::SetThreadID(tid_t tid) {
345+
void SBBreakpoint::SetThreadID(lldb::tid_t tid) {
346346
LLDB_INSTRUMENT_VA(this, tid);
347347

348348
BreakpointSP bkpt_sp = GetSP();
@@ -353,10 +353,10 @@ void SBBreakpoint::SetThreadID(tid_t tid) {
353353
}
354354
}
355355

356-
tid_t SBBreakpoint::GetThreadID() {
356+
lldb::tid_t SBBreakpoint::GetThreadID() {
357357
LLDB_INSTRUMENT_VA(this);
358358

359-
tid_t tid = LLDB_INVALID_THREAD_ID;
359+
lldb::tid_t tid = LLDB_INVALID_THREAD_ID;
360360
BreakpointSP bkpt_sp = GetSP();
361361
if (bkpt_sp) {
362362
std::lock_guard<std::recursive_mutex> guard(

0 commit comments

Comments
 (0)