Skip to content

llvm-upgrade can't do uint* %x and int* %x together. #1509

@npatil2

Description

@npatil2
Bugzilla Link 1137
Resolution FIXED
Resolved on Nov 07, 2018 00:22
Version trunk
OS Linux

Extended Description

llvm-upgrade cannot upgrade the following program:

; ModuleID = 'b.c'
target datalayout = "e-p:32:32"
target endian = little
target pointersize = 32
target triple = "i686-pc-linux-gnu"

implementation ; Functions:

void %main() {
entry:
%tmp = alloca uint, align 4 ; <uint*> [#uses=1]
%tmp = alloca int, align 4 ; <int*> [#uses=1]
"alloca point" = cast int 0 to int ; [#uses=0]
store uint 1, uint* %tmp
store int 2, int* %tmp
br label %return

return: ; preds = %entry
ret void
}

It fails with: Redefinition of value named 'tmp' in the 'i32 *' type plane

(The above program was produced by compiling the following with the llvm-gcc4-
1.9-x86-FC5 binary:
void main()
{
{
unsigned int tmp = 1;
}
{
int tmp = 2;
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillacompile-failUse [accepts-invalid] and [rejects-valid] insteadllvm-toolsAll llvm tools that do not have corresponding tag

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions