# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies
#
# If you believe there's an error in this file please file an
# issue against the rust-lang/cargo repository. If you're
# editing this file be aware that the upstream Cargo.toml
# will likely look very different (and much more reasonable)

[package]
name = "compiler_builtins"
version = "0.1.18"
authors = ["Jorge Aparicio <japaricious@gmail.com>"]
links = "compiler-rt"
include = ["/Cargo.toml", "/build.rs", "/src/*", "/examples/*", "/LICENSE.txt", "/README.md", "/compiler-rt/*", "/libm/src/math/*"]
description = "Compiler intrinsics used by the Rust compiler. Also available for other targets\nif necessary!\n"
homepage = "https://github.com/rust-lang-nursery/compiler-builtins"
documentation = "https://docs.rs/compiler_builtins"
readme = "README.md"
license = "MIT/Apache-2.0"
repository = "https://github.com/rust-lang-nursery/compiler-builtins"
[profile.dev]
panic = "abort"

[profile.release]
panic = "abort"

[lib]
test = false

[[example]]
name = "intrinsics"
required-features = ["compiler-builtins"]
[dependencies.core]
version = "1.0.0"
optional = true
package = "rustc-std-workspace-core"
[build-dependencies.cc]
version = "1.0"
optional = true

[features]
c = ["cc"]
compiler-builtins = []
default = ["compiler-builtins"]
mangled-names = []
mem = []
no-lang-items = []
rustc-dep-of-std = ["compiler-builtins", "core"]
