<html>
<head>
<base href="http://llvm.org/bugs/" />
</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 --- - Trunk/3.4 macro parsing issue (works in 3.3)"
href="http://llvm.org/bugs/show_bug.cgi?id=17998">17998</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Trunk/3.4 macro parsing issue (works in 3.3)
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>trunk
</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>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>-New Bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>dl9pf@gmx.de
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>The following errors happen only in trunk/3.4 whereas 3.3 is fine:
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/arch/x86/crypto/aesni-intel_glue.c:1348:1:
error: variable has incomplete type
'const struct x86cpu_device_id'
MODULE_DEVICE_TABLE(x86cpu, aesni_cpu_id);
^
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/include/linux/module.h:145:3:
note: expanded from macro 'MODULE_DEVICE_TABLE'
MODULE_GENERIC_TABLE(type##_device,name)
^
/home/dl9pf/llvmlinux/targets/x86_64/src/linux/include/linux/module.h:88:33:
note: expanded from macro 'MODULE_GENERIC_TABLE'
extern const struct gtype##_id __mod_##gtype##_table \
^
<scratch space>:61:1: note: expanded from here
__mod_x86cpu_device_table
^
The code looks like:
[...]
#define MODULE_GENERIC_TABLE(gtype,name) \
extern const struct gtype##_id __mod_##gtype##_table \
__attribute__ ((unused, alias(__stringify(name))))
#else /* !MODULE */
#define MODULE_GENERIC_TABLE(gtype,name)
#endif
[...]
#define MODULE_DEVICE_TABLE(type,name) \
MODULE_GENERIC_TABLE(type##_device,name)
Attached is the preprocessed arch/x86/crypto/aesni-intel_glue.i .
It compiles with 3.3 and barfs with 3.4/trunk.
clang-3.3 -S aesni-intel_glue.i
vs.
clang-3.4 -S aesni-intel_glue.i</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>