This patch extends the asm parser to make it keep parsing input tokens
as inline assembly if a single-line asm line is followed by another line
starting with __asm too. It also makes sure that we correctly keep
matching braces in such situations by separating the notions of how many
braces we are matching and whether we are in single-line asm block mode.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
Nice!
lib/Parse/ParseStmtAsm.cpp | ||
---|---|---|
413–416 ↗ | (On Diff #11688) | Apple's gcc was always attempting to implement MSVC's asm block behavior. I don't think we need to emulate Apple gcc, especially now that it is dead for good. I would drop the MicrosoftExt check here. |
test/CodeGen/ms-inline-asm.c | ||
2 ↗ | (On Diff #11688) | If you agree with the other comment, remember to revert this flag change. |
147 ↗ | (On Diff #11688) | A lot of these changes make the tests harder to read and understand. The tests from here on down are mostly testing the name lookup, and I think are best structured along the lines of: { __asm mov eax, WeirdCXXIdentifier } // CHECK: call void asm ... { __asm mov eax, WeirdCXX::Identifier } // CHECK: call void asm ... That way we can keep the CHECK lines separate. |