about summary refs log tree commit diff
diff options
context:
space:
mode:
authorantoyo <antoyo@users.noreply.github.com>2024-10-17 12:39:16 -0400
committerGitHub <noreply@github.com>2024-10-17 12:39:16 -0400
commit764770d6a83353cbd2cb4d836ff5bf802d75bb86 (patch)
tree888f7ee29f841f4e50e2be82aae4170caed73180
parentd00f1ec7aaca6c9db9b7379577b9e99133e8b1e0 (diff)
parent8cd325d987ec875a9bb09f4c0bbc34f1f07fe308 (diff)
downloadrust-764770d6a83353cbd2cb4d836ff5bf802d75bb86.tar.gz
rust-764770d6a83353cbd2cb4d836ff5bf802d75bb86.zip
Merge pull request #568 from rust-lang/update-gcc
Update GCC version with the removal of supports_128bit_int
-rw-r--r--Cargo.lock8
-rw-r--r--Cargo.toml2
-rw-r--r--libgccjit.version2
-rw-r--r--src/base.rs3
-rw-r--r--src/lib.rs18
5 files changed, 17 insertions, 16 deletions
diff --git a/Cargo.lock b/Cargo.lock
index f2a368395b2..2f38d39f7e8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -79,18 +79,18 @@ dependencies = [
 
 [[package]]
 name = "gccjit"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bb376e98c82d9284c3a17fc1d6bf9bc921055418950238d7a553c27a7e1f6ab"
+checksum = "8b8611473168aebc9b307d7f4e7466fda20ab8d72acaca2c0d840dbe8fef451a"
 dependencies = [
  "gccjit_sys",
 ]
 
 [[package]]
 name = "gccjit_sys"
-version = "0.3.0"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93b4b1be553b5df790bf25ca2a1d6add81727dc29f8d5c8742468ed306d621d1"
+checksum = "f383b875dac2f3bb06e7d395be2fe6fbaad935658fb54f2399e5eb4fb88117ce"
 dependencies = [
  "libc",
 ]
diff --git a/Cargo.toml b/Cargo.toml
index 22b953cd2d1..3c6b8e93811 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,7 +22,7 @@ master = ["gccjit/master"]
 default = ["master"]
 
 [dependencies]
-gccjit = "2.2"
+gccjit = "2.3"
 #gccjit = { git = "https://github.com/rust-lang/gccjit.rs" }
 
 # Local copy.
diff --git a/libgccjit.version b/libgccjit.version
index e515f223212..f6b512a0280 100644
--- a/libgccjit.version
+++ b/libgccjit.version
@@ -1 +1 @@
-c16f53a752ed2b679fafe88d4ec795fe54a245ac
+29901846ff610daab8a80436cfe36e93b4b5aa1e
diff --git a/src/base.rs b/src/base.rs
index 2eaab3ed00c..2838aad1afe 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -199,12 +199,13 @@ pub fn compile_codegen_unit(
             let f32_type_supported = target_info.supports_target_dependent_type(CType::Float32);
             let f64_type_supported = target_info.supports_target_dependent_type(CType::Float64);
             let f128_type_supported = target_info.supports_target_dependent_type(CType::Float128);
+            let u128_type_supported = target_info.supports_target_dependent_type(CType::UInt128t);
             // TODO: improve this to avoid passing that many arguments.
             let cx = CodegenCx::new(
                 &context,
                 cgu,
                 tcx,
-                target_info.supports_128bit_int(),
+                u128_type_supported,
                 f16_type_supported,
                 f32_type_supported,
                 f64_type_supported,
diff --git a/src/lib.rs b/src/lib.rs
index 7b0d594ddc1..fdbf53e1b1a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -134,11 +134,15 @@ impl TargetInfo {
         false
     }
 
-    fn supports_128bit_int(&self) -> bool {
-        self.supports_128bit_integers.load(Ordering::SeqCst)
-    }
-
-    fn supports_target_dependent_type(&self, _typ: CType) -> bool {
+    fn supports_target_dependent_type(&self, typ: CType) -> bool {
+        match typ {
+            CType::UInt128t | CType::Int128t => {
+                if self.supports_128bit_integers.load(Ordering::SeqCst) {
+                    return true;
+                }
+            }
+            _ => (),
+        }
         false
     }
 }
@@ -159,10 +163,6 @@ impl LockedTargetInfo {
         self.info.lock().expect("lock").cpu_supports(feature)
     }
 
-    fn supports_128bit_int(&self) -> bool {
-        self.info.lock().expect("lock").supports_128bit_int()
-    }
-
     fn supports_target_dependent_type(&self, typ: CType) -> bool {
         self.info.lock().expect("lock").supports_target_dependent_type(typ)
     }