Skip to content

Commit a0b4e67

Browse files
authored
Auto merge of #35174 - arielb1:llvm-type-audit, r=eddyb
Audit C++ types in rustllvm cc @eddyb Fixes #35131
2 parents 9cf1897 + 3041a97 commit a0b4e67

39 files changed

+2937
-2656
lines changed

mk/rustllvm.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ LLVM_EXTRA_INCDIRS_$(1)= $$(call CFG_CC_INCLUDE_$(1),$(S)src/llvm/include) \
2424
endif
2525

2626
RUSTLLVM_OBJS_CS_$(1) := $$(addprefix rustllvm/, \
27-
ExecutionEngineWrapper.cpp RustWrapper.cpp PassWrapper.cpp \
27+
RustWrapper.cpp PassWrapper.cpp \
2828
ArchiveWrapper.cpp)
2929

3030
RUSTLLVM_INCS_$(1) = $$(LLVM_EXTRA_INCDIRS_$(1)) \

src/librustc_driver/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ pub fn run_compiler_with_file_loader<'a, L>(args: &[String],
186186
let sopts = config::build_session_options(&matches);
187187

188188
if sopts.debugging_opts.debug_llvm {
189-
unsafe { llvm::LLVMSetDebug(1); }
189+
unsafe { llvm::LLVMRustSetDebug(1); }
190190
}
191191

192192
let descriptions = diagnostics_registry();

src/librustc_llvm/build.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ fn main() {
112112
cfg.flag(&flag);
113113
}
114114

115-
cfg.file("../rustllvm/ExecutionEngineWrapper.cpp")
116-
.file("../rustllvm/PassWrapper.cpp")
115+
cfg.file("../rustllvm/PassWrapper.cpp")
117116
.file("../rustllvm/RustWrapper.cpp")
118117
.file("../rustllvm/ArchiveWrapper.cpp")
119118
.cpp(true)

src/librustc_llvm/diagnostic.rs

+40-18
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,29 @@ pub use self::Diagnostic::*;
1616
use libc::{c_char, c_uint};
1717
use std::ptr;
1818

19-
use {DebugLocRef, DiagnosticInfoRef, TwineRef, ValueRef};
19+
use {DiagnosticInfoRef, TwineRef, ValueRef};
20+
use ffi::DebugLocRef;
2021

2122
#[derive(Copy, Clone)]
2223
pub enum OptimizationDiagnosticKind {
2324
OptimizationRemark,
2425
OptimizationMissed,
2526
OptimizationAnalysis,
27+
OptimizationAnalysisFPCommute,
28+
OptimizationAnalysisAliasing,
2629
OptimizationFailure,
30+
OptimizationRemarkOther,
2731
}
2832

2933
impl OptimizationDiagnosticKind {
3034
pub fn describe(self) -> &'static str {
3135
match self {
32-
OptimizationRemark => "remark",
36+
OptimizationRemark |
37+
OptimizationRemarkOther => "remark",
3338
OptimizationMissed => "missed",
3439
OptimizationAnalysis => "analysis",
40+
OptimizationAnalysisFPCommute => "floating-point",
41+
OptimizationAnalysisAliasing => "aliasing",
3542
OptimizationFailure => "failure",
3643
}
3744
}
@@ -58,11 +65,11 @@ impl OptimizationDiagnostic {
5865
message: ptr::null_mut(),
5966
};
6067

61-
super::LLVMUnpackOptimizationDiagnostic(di,
62-
&mut opt.pass_name,
63-
&mut opt.function,
64-
&mut opt.debug_loc,
65-
&mut opt.message);
68+
super::LLVMRustUnpackOptimizationDiagnostic(di,
69+
&mut opt.pass_name,
70+
&mut opt.function,
71+
&mut opt.debug_loc,
72+
&mut opt.message);
6673

6774
opt
6875
}
@@ -84,10 +91,10 @@ impl InlineAsmDiagnostic {
8491
instruction: ptr::null_mut(),
8592
};
8693

87-
super::LLVMUnpackInlineAsmDiagnostic(di,
88-
&mut opt.cookie,
89-
&mut opt.message,
90-
&mut opt.instruction);
94+
super::LLVMRustUnpackInlineAsmDiagnostic(di,
95+
&mut opt.cookie,
96+
&mut opt.message,
97+
&mut opt.instruction);
9198

9299
opt
93100
}
@@ -103,24 +110,39 @@ pub enum Diagnostic {
103110

104111
impl Diagnostic {
105112
pub unsafe fn unpack(di: DiagnosticInfoRef) -> Diagnostic {
106-
let kind = super::LLVMGetDiagInfoKind(di);
113+
use super::DiagnosticKind as Dk;
114+
let kind = super::LLVMRustGetDiagInfoKind(di);
107115

108116
match kind {
109-
super::DK_InlineAsm => InlineAsm(InlineAsmDiagnostic::unpack(di)),
117+
Dk::InlineAsm => InlineAsm(InlineAsmDiagnostic::unpack(di)),
110118

111-
super::DK_OptimizationRemark => {
119+
Dk::OptimizationRemark => {
112120
Optimization(OptimizationDiagnostic::unpack(OptimizationRemark, di))
113121
}
114-
115-
super::DK_OptimizationRemarkMissed => {
122+
Dk::OptimizationRemarkOther => {
123+
Optimization(OptimizationDiagnostic::unpack(OptimizationRemarkOther, di))
124+
}
125+
Dk::OptimizationRemarkMissed => {
116126
Optimization(OptimizationDiagnostic::unpack(OptimizationMissed, di))
117127
}
118128

119-
super::DK_OptimizationRemarkAnalysis => {
129+
Dk::OptimizationRemarkAnalysis => {
120130
Optimization(OptimizationDiagnostic::unpack(OptimizationAnalysis, di))
121131
}
122132

123-
super::DK_OptimizationFailure => {
133+
134+
Dk::OptimizationRemarkAnalysisFPCommute => {
135+
Optimization(OptimizationDiagnostic::unpack(
136+
OptimizationAnalysisFPCommute, di))
137+
}
138+
139+
Dk::OptimizationRemarkAnalysisAliasing => {
140+
Optimization(OptimizationDiagnostic::unpack(
141+
OptimizationAnalysisAliasing, di))
142+
}
143+
144+
145+
Dk::OptimizationFailure => {
124146
Optimization(OptimizationDiagnostic::unpack(OptimizationFailure, di))
125147
}
126148

0 commit comments

Comments
 (0)