[LLVMbugs] [Bug 11837] New: "tail" marked on function with that may touch stack via byval param of caller
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Mon Jan 23 11:24:21 PST 2012
http://llvm.org/bugs/show_bug.cgi?id=11837
Bug #: 11837
Summary: "tail" marked on function with that may touch stack
via byval param of caller
Product: clang
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: -New Bugs
AssignedTo: unassignedclangbugs at nondot.org
ReportedBy: jvoung at google.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 7935
--> http://llvm.org/bugs/attachment.cgi?id=7935
ll showing issue
In the attached test case, clang marks a call to memcpy "tail" even though one
of the arguments is a pointer that may be pointing at the stack. The pointer
may be pointing at the stack because it was derived from a "byval" parameter of
the caller.
Attached is the .ll for "SingleSource/UnitTests/byval-alignment.c" from the
llvm test-suite, which shows this (see parameter "y" of function f0 being
funneled to a tail call after a bitcast).
Repro info: This was generated by running with clang -O3 (r148716), on x86-64,
but without "-mllvm -disable-llvm-optzns" on the byval-alignment test.
This seems related to:
http://llvm.org/bugs/show_bug.cgi?id=7272
Though that bug says it's been fixed...
This is also related to comment #1 in:
http://llvm.org/bugs/show_bug.cgi?id=11420
Which noticed that: "BasicAA sees that the call to memcpy is a tail-call, and
therefore concludes that it can't possibly touch stack memory."
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list