cdbe1e0d85d7d32452dd1c52758d7bfaa1c0663b |
|
17-Jan-2013 |
Jordan Rose <jordan_rose@apple.com> |
Format strings: don't ever convert %+d to %lu. Presumably, if the printf format has the sign explicitly requested, the user wants to treat the data as signed. This is a fix-up for r172739, and also includes several test changes that didn't make it into that commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
87b73ba920f523ef13f2420cbdb958a281aa6f33 |
|
17-Jan-2013 |
Matt Beaumont-Gay <matthewbg@google.com> |
Suppress all -Wunused-value warnings from macro body expansions. This is inspired by a number of false positives in real code, including PR14968. I've added test cases reduced from these false positives to test/Sema/unused-expr.c, as well as corresponding test cases that pass the offending expressions as arguments to a no-op macro to ensure that we do warn there. This also removes my previous tweak from r166522/r166534, so that we warn on unused cast expressions in macro arguments. There were several test cases that were using -Wunused-value to test general diagnostic emission features; I changed those to use other warnings or warn on a macro argument expression. I stared at the test case for PR14399 for a while with Richard Smith and we believe the new test case exercises the same codepaths as before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
adff43ad96defb28bad20d8335ab30beadd72ee8 |
|
18-Dec-2012 |
Eli Friedman <eli.friedman@gmail.com> |
More conservative fix for <rdar://problem/12847524> (a crash printing diagnostic ranges). I'm not really happy with this fix, but I'm confident it's correct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
5bdbc114da925304a774b726b0abb87d75bc3008 |
|
13-Dec-2012 |
Nadav Rotem <nrotem@apple.com> |
Revert 170049 because it fails with an assertion on one of the spec2000 workloads. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
0fdcd1e81db7b8f5b3fd05154d966b215b20a2eb |
|
13-Dec-2012 |
Eli Friedman <eli.friedman@gmail.com> |
More hacking on mapDiagnosticRanges to make it handle more cases. This still isn't quite right, but it fixes a crash. I factored out findCommonParent because we need it on the result of getImmediateExpansionRange: for a function macro, the beginning and end of an expansion range can come out of different macros/macro arguments, which means the resulting range is a complete mess to handle consistently. I also made some changes to how findCommonParent works; it works somewhat better in some cases, and somewhat worse in others, but I think overall it's a better balance. I'm coming to the conclusion that mapDiagnosticRanges isn't using the right algorithm, though: chasing the caret is fundamentally more complicated than any algorithm which only considers one FileID for the caret can handle because each SourceLocation doesn't really have a single parent. We need to follow the same path of choosing expansion locations and spelling locations which the caret used to come up with the correct range in the general case. Fixes <rdar://problem/12847524>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
19c8ce0cf534caa909955ba9a17b7841f574a3be |
|
01-Dec-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Try to make the source location information for token pastes a bit more consistent. Fixes a crash printing diagnostics on the gcc testsuite, and also makes diagnostic range printing print nicer results for token pastes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
ecdc8d3e0fc65610746a4e074491ca0807fca7b2 |
|
30-Nov-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the computation of highlight ranges so we produce something sane when the beginning and end of the range are in different macro arguments. PR14399. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
9cb1c3de9df7d944f0c5cccaf03fa414036487eb |
|
03-Nov-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Add a proper algorithm to compute accurate source ranges for diagnostics with caret locations and source ranges in macros. Makes ranges more accurate in some cases, and fixes an assertion failure. Fixes <rdar://problem/12472249>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
9875c6020f6f2832e48c0d41910ba9fc99181670 |
|
24-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch to a more natural formatting of the macro name printing. Suggested by John McCall. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
a47129e97be2379961046fac4f94f12ac15cb540 |
|
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Now that macro expansion notes are real notes and go through the same formatting as any other diagnostic, they will be properly line wrapped and otherwise pretty printed. Let's take advantage of that and the new factoring to add some helpful information to them (much like template backtrace notes and other notes): the name of the macro whose expansion is being noted. This makes a world of difference if caret diagnostics are disabled, making the expansion notes actually useful in this case. It also helps ensure that in edge cases the information the user needs is present. Consider: % nl -ba t5.cc 1 #define M(x, y, z) \ 2 y 3 4 M( 5 1, 6 2, 7 3); We now produce: % ./bin/clang -fsyntax-only t5.cc t5.cc:6:3: error: expected unqualified-id 2, ^ t5.cc:2:3: note: expanded from macro: M y ^ 1 error generated. Without the added information in the note, the name of the macro being expanded would never be shown. This also deletes a FIXME to use the diagnostic formatting. It's not yet clear to me that we *can* do this reasonably, and the production of this message was my primary goal here anyways. I'd love any comments or suggestions on improving these notes, their wording, etc. Currently, I need to make them provide more helpful information in the presence of a token-pasting buffer, and I'm pondering adding something along the lines of "expanded from argument N of macro: ...". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
a08529cc3f00e0b47a3c028823634129ac46847b |
|
03-Oct-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed exapnsion range for # and ##. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
4e805467121700c31f5a37aaac681524a9b9deef |
|
14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the diagnostic messages about macros to use the terms 'expanded' and 'expansions' rather than 'instantiated' and 'contexts'. This is the first of several patches migrating Clang's terminology surrounding macros from 'instantiation' to 'expansion'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
886ea9b4c8b20b3c550dffaa893b194792e49078 |
|
08-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the token-paste source locations inside of function style macro argument expansion to use the macro argument source locations as well. Add a few tests to exercise this. There is still a bit more work needed here though. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
c8d1ecca1cd3fadbd331d15c420755aa6184554b |
|
08-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Keep track of which source locations are part of a macro argument instantiation and improve diagnostics which are stem from macro arguments to trace the argument itself back through the layers of macro expansion. This requires some tricky handling of the source locations, as the argument appears to be expanded in the opposite direction from the surrounding macro. This patch provides helper routines that encapsulate the logic and explain the reasoning behind how we step through macros during diagnostic printing. This fixes the rest of the test cases originially in PR9279, and later split out into PR10214 and PR10215. There is still some more work we can do here to improve the macro backtrace, but those will follow as separate patches. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
83068315f7d9ed7b82ec35c2c26702151d186a70 |
|
28-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Fix PR9279 - Macro expansion stack trace seriously broken with function-style macros, by not recursively printing notes for other 'instantiated from' notes. This is a one line fix here: + // Don't print recursive instantiation notes from an instantiation note. + Loc = SM.getSpellingLoc(Loc); While here, fix the testcase to be more precise (it got filecheck'ized brutally), and fix EmitCaretDiagnostic to be private and to not pass down the unused 'Level' argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
60be4deb8d90e58cc65b41722d694599e387fc33 |
|
09-Mar-2011 |
Chandler Carruth <chandlerc@gmail.com> |
FileCheckize this test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
1b2ad2fd9e2d5352144481aa1fd995d333d9adc9 |
|
20-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Revert r114316, -Wunused-value enabled by default was intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
6dff2288a8054bdbc97217568e5831bcce809db8 |
|
19-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make -Wunused-value off by default, matching GCC. Fixes rdar://7126194. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
a5c6c5814b4c9f562247d2182eb59ccad128dbde |
|
12-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
fix a bug in SourceManager::getInstantiationLocSlowCase, where we'd add an offset from the spelling location space to the instantiation location, which doesn't make sense and would lead up to the text diagnostics crashing when presented with non-sensical locations. This fixes rdar://7597492, a crash on 255.vortex. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
a5728872c7702ddd09537c95bc3cbd20e1f2fb09 |
|
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. - This is designed to make it obvious that %clang_cc1 is a "test variable" which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it can be useful to redefine what gets run as 'clang -cc1' (for example, to set a default target). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
4fcfde4d5c8f25e40720972a5543d538a0dcb220 |
|
08-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Eliminate &&s in tests. - 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
c9c042c2a8fc6a6c515a873c17737d95c77d1852 |
|
06-May-2009 |
Chris Lattner <sabre@nondot.org> |
adjust this to bourne shell syntax git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|
037fb7f3691966aa66f2b878a149fba57b947355 |
|
06-May-2009 |
Chris Lattner <sabre@nondot.org> |
Fix rdar://6849429 - -Wunused-value with deeply nested macro expansion generates untraceable warnings The "instantiated from" messages coming from the caret diagnostics system are basically walking the macro expansion tree, emitting each level as it goes. However, it was skipping certain leaves in the tree by skipping up the entire instantiation arm every time it went up one spelling arm. This caused it to miss some things. For example, in this testcase: #define M1(x) x #define M2 1; void foo() { M1(M2) } we now print: /Users/sabre/Desktop/clang-unused-value-macro.c:6:2: warning: expression result unused M1(M2) ^~~~~~ /Users/sabre/Desktop/clang-unused-value-macro.c:6:5: note: instantiated from: M1(M2) ^~ /Users/sabre/Desktop/clang-unused-value-macro.c:3:12: note: instantiated from: #define M2 1; ^ Previously we didn't print the last line, so we never emitted the caret pointing to the 1! Incidentally, the spaces between the lines is really noisy, I think we should reconsider this heuristic (which adds them when the printed code starts too close to the start of the line). The regression test can't use -verify, because -verify doesn't catch notes for macro instantiation history. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/Misc/caret-diags-macros.c
|