Skip to content

Commit

Permalink
Tests crash from inappropriate use of common linkage
Browse files Browse the repository at this point in the history
Normally, variables with common linkage must be zero-initialized. In Rust,
common linkage variables that are not zero-initialized causes a crash in the
compiler backend.

This commit adds a test case to confirm this behavior, which will inform us if
it changes in the future.
  • Loading branch information
mojingran committed Sep 1, 2023
1 parent 59a8294 commit 4160337
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 0 deletions.
14 changes: 14 additions & 0 deletions tests/ui/linkage-attr/common-linkage-non-zero-init.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// build-fail
// failure-status: 101
// known-bug: #109681

// This test verifies that we continue to hit the LLVM error for common linkage with non-zero
// initializers, since it generates invalid LLVM IR.
// Linkages are internal features marked as perma-unstable, so we don't need to fix the issue
// for now.
#![crate_type="lib"]
#![feature(linkage)]

#[linkage = "common"]
#[no_mangle]
pub static TEST: bool = true;
3 changes: 3 additions & 0 deletions tests/ui/linkage-attr/common-linkage-non-zero-init.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
'common' global must have a zero initializer!
ptr @TEST
LLVM ERROR: Broken module found, compilation aborted!

0 comments on commit 4160337

Please sign in to comment.