<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - msan: incorrect function/location/name for stack variables"
href="https://bugs.llvm.org/show_bug.cgi?id=37208">37208</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>msan: incorrect function/location/name for stack variables
</td>
</tr>
<tr>
<th>Product</th>
<td>compiler-rt
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>enhancement
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>compiler-rt
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>dvyukov@google.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org
</td>
</tr></table>
<p>
<div>
<pre>#include <stdio.h>
int foo()
{
volatile int x;
return x;
}
int bar()
{
return foo();
}
int main()
{
printf("start\n");
int x = bar();
if (x)
printf("here\n");
return 0;
}
$ clang -v
clang version 7.0.0 (trunk 326052)
$ clang test.c -fsanitize=memory -fsanitize-memory-track-origins -g -O2
$ ./a.out
==261759==WARNING: MemorySanitizer: use-of-uninitialized-value
#0 0x499cda in main test.c:18:6
Uninitialized value was created by an allocation of 'x.i.i' in the stack
frame of function 'main'
#0 0x499c20 in main test.c:15
SUMMARY: MemorySanitizer: use-of-uninitialized-value test.c:18:6 in main
The variable is called 'x', not 'x.i.i'.
The variable is allocated in function 'foo', not 'main'.
The variable is allocated at line 5, not 15. 15 does not even hint at the
inlined function that allocated the variable.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>