]> granicus.if.org Git - clang/log
clang
13 years agoCheck for GCC paths that have the target triple in them. This is required for a...
David Chisnall [Tue, 27 Sep 2011 22:03:18 +0000 (22:03 +0000)]
Check for GCC paths that have the target triple in them.  This is required for a lot of cross-compile toolchains.  Also add some slightly better support for -B.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140645 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGet rid of useless helper Sema::CastCategory.
Eli Friedman [Tue, 27 Sep 2011 21:58:52 +0000 (21:58 +0000)]
Get rid of useless helper Sema::CastCategory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140642 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIf you download clang and delete the test directory, you can end up
Douglas Gregor [Tue, 27 Sep 2011 21:28:10 +0000 (21:28 +0000)]
If you download clang and delete the test directory, you can end up
with the copy line failing with an error, yet the make will complete
successfully. From Greg Clayton!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140639 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agode-tmpify clang.
Benjamin Kramer [Tue, 27 Sep 2011 21:06:10 +0000 (21:06 +0000)]
de-tmpify clang.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140637 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[analyzer] Remove target triple from the malloc overflow test.
Anna Zaks [Tue, 27 Sep 2011 20:41:53 +0000 (20:41 +0000)]
[analyzer] Remove target triple from the malloc overflow test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140635 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSome changes to improve compatibility for MSVC-style C++ struct layout. Patch from...
Eli Friedman [Tue, 27 Sep 2011 19:12:27 +0000 (19:12 +0000)]
Some changes to improve compatibility for MSVC-style C++ struct layout. Patch from r4start at gmail.com (with some minor modifications by me).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140623 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDocument the incompatibility that stems from Clang properly implement
Douglas Gregor [Tue, 27 Sep 2011 18:58:27 +0000 (18:58 +0000)]
Document the incompatibility that stems from Clang properly implement
the rule that defines the implicit copy constructor/implicit copy
asssignment operator as deleted when a move constructor or move
assignment operator has been explicitly declared. This has hit a
number of people because Boost 1.47.0's shared_ptr fails to declare a
copy constructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140621 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove test, so it actually tests what it is supposed to (given that we don't have...
Eli Friedman [Tue, 27 Sep 2011 18:55:06 +0000 (18:55 +0000)]
Move test, so it actually tests what it is supposed to (given that we don't have an AST verifier).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140620 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix examples for r140478. PR11021.
Eli Friedman [Tue, 27 Sep 2011 18:33:47 +0000 (18:33 +0000)]
Fix examples for r140478.  PR11021.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140618 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Expose array size and element type, patch by Vinay Sajip!
Argyrios Kyrtzidis [Tue, 27 Sep 2011 17:44:34 +0000 (17:44 +0000)]
[libclang] Expose array size and element type, patch by Vinay Sajip!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140614 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoConstant evaluation for pointer CXXScalarValueInitExpr
Peter Collingbourne [Tue, 27 Sep 2011 17:33:05 +0000 (17:33 +0000)]
Constant evaluation for pointer CXXScalarValueInitExpr

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140613 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIntroduce a callback to PPCallbacks for lines skipped by the preprocessor.
Argyrios Kyrtzidis [Tue, 27 Sep 2011 17:32:05 +0000 (17:32 +0000)]
Introduce a callback to PPCallbacks for lines skipped by the preprocessor.

Patch by Jason Haslam!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140612 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoBreak SourceManager::translateFileLineCol into translateFile, no functionality change.
Argyrios Kyrtzidis [Tue, 27 Sep 2011 17:22:25 +0000 (17:22 +0000)]
Break SourceManager::translateFileLineCol into translateFile, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140610 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoWhen parsing a character literal, extract the characters from the
Douglas Gregor [Tue, 27 Sep 2011 17:00:18 +0000 (17:00 +0000)]
When parsing a character literal, extract the characters from the
buffer as an 'unsigned char', so that integer promotion doesn't
sign-extend character values > 127 into oblivion. Fixes
<rdar://problem/10188919>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140608 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r139989 and r140031, which implemented the Objective-C type
Douglas Gregor [Tue, 27 Sep 2011 16:10:05 +0000 (16:10 +0000)]
Revert r139989 and r140031, which implemented the Objective-C type
system change in <rdar://problem/10109725> that allows conversion from
'self' in class methods to the root of the class's hierarchy. This
conversion rule is a hack that has non-trivial repurcussions
(particularly with overload resolution).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140605 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoLet -B work for ld paths on Linux.
David Chisnall [Tue, 27 Sep 2011 13:31:58 +0000 (13:31 +0000)]
Let -B work for ld paths on Linux.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140604 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r140589. It was causing failures during llvm compilation:
Bill Wendling [Tue, 27 Sep 2011 10:09:33 +0000 (10:09 +0000)]
Revert r140589. It was causing failures during llvm compilation:

llvm[1]: Compiling CommandLine.cpp for Debug+Asserts build
if  /Users/void/llvm/llvm-opt.obj/Release+Asserts/bin/clang++ -I/Users/void/llvm/llvm.obj/include -I/Users/void/llvm/llvm.obj/lib/Support -I/Users/void/llvm/llvm.src/include -I/Users/void/llvm/llvm.src/lib/Support  -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -g -fno-exceptions -fno-common -Woverloaded-virtual -Wcast-qual   -m64 -Wall -W -Wno-unused-parameter -Wwrite-strings -c -MMD -MP -MF "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp" -MT "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.o" -MT "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d" /Users/void/llvm/llvm.src/lib/Support/CommandLine.cpp -o /Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.o ; \
            then /bin/mv -f "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp" "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d"; else /bin/rm "/Users/void/llvm/llvm.obj/lib/Support/Debug+Asserts/CommandLine.d.tmp"; exit 1; fi
In file included from /Users/void/llvm/llvm.src/lib/Support/CommandLine.cpp:25:
/Users/void/llvm/llvm.src/include/llvm/Support/system_error.h:690:14: error: unknown type name 'make_error_condition'; did you mean 'error_condition'?
    {*this = make_error_condition(_e);}
             ^~~~~~~~~~~~~~~~~~~~
             error_condition
...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140599 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMSVC is stuck in the 80s.
Argyrios Kyrtzidis [Tue, 27 Sep 2011 04:14:36 +0000 (04:14 +0000)]
MSVC is stuck in the 80s.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140597 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRenaming PathDiagnosticClients.h to PathDiagnosticConsumers.h (issue 5397)
David Blaikie [Tue, 27 Sep 2011 01:43:33 +0000 (01:43 +0000)]
Renaming PathDiagnosticClients.h to PathDiagnosticConsumers.h (issue 5397)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140596 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoPR11009: Fix a FIXME which was leading to an assertion failure with rvalue references.
Eli Friedman [Tue, 27 Sep 2011 01:11:35 +0000 (01:11 +0000)]
PR11009: Fix a FIXME which was leading to an assertion failure with rvalue references.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140594 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd typo correction for the type name in C++ "new" statements
Kaelyn Uhrain [Tue, 27 Sep 2011 00:33:13 +0000 (00:33 +0000)]
Add typo correction for the type name in C++ "new" statements

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140589 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Refactor the important stuff in clang_getCursor into a cxcursor::getCursor...
Argyrios Kyrtzidis [Tue, 27 Sep 2011 00:30:33 +0000 (00:30 +0000)]
[libclang] Refactor the important stuff in clang_getCursor into a cxcursor::getCursor(CXTranslationUnit, SourceLocation) function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140588 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Introduce clang_Cursor_isNull and clang_Cursor_getTranslationUnit functions.
Argyrios Kyrtzidis [Tue, 27 Sep 2011 00:30:30 +0000 (00:30 +0000)]
[libclang] Introduce clang_Cursor_isNull and clang_Cursor_getTranslationUnit functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140587 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc - don't complain about unimplemented property when conforming
Fariborz Jahanian [Tue, 27 Sep 2011 00:23:52 +0000 (00:23 +0000)]
objc - don't complain about unimplemented property when conforming
protocol declares the property, as well as one of its superclasses.
Property will be implemented in the super class. // rdar://10120691

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140586 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix regression of -Warray-bounds involving varargs functions [PR 11007].
Ted Kremenek [Mon, 26 Sep 2011 23:36:13 +0000 (23:36 +0000)]
Fix regression of -Warray-bounds involving varargs functions [PR 11007].

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140584 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a comment in ASTReader::ReadPragmaDiagnosticMappings that the user bit
Argyrios Kyrtzidis [Mon, 26 Sep 2011 23:06:41 +0000 (23:06 +0000)]
Add a comment in ASTReader::ReadPragmaDiagnosticMappings that the user bit
is set by the setDiagnosticMapping call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140578 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc - compare setter/property types using
Fariborz Jahanian [Mon, 26 Sep 2011 22:59:09 +0000 (22:59 +0000)]
objc - compare setter/property types using
hasSameUnqualifiedType in //rdar://10156674

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140576 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove string literal to bool conversion into its own warning flag -Wstring-conversion.
Richard Trieu [Mon, 26 Sep 2011 22:38:21 +0000 (22:38 +0000)]
Move string literal to bool conversion into its own warning flag -Wstring-conversion.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140574 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc - in matching setter argument type to its property type,
Fariborz Jahanian [Mon, 26 Sep 2011 22:12:27 +0000 (22:12 +0000)]
objc - in matching setter argument type to its property type,
ingore the type qualifiers. // rdar://10156674

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140571 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoobjc-arc: mark functions which return types which can't be dealt with
Fariborz Jahanian [Mon, 26 Sep 2011 21:23:35 +0000 (21:23 +0000)]
objc-arc: mark functions which return types which can't be dealt with
in arc mode and are in system headers as unavailable.
// rdar://10186625

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140565 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake necessary changes in AddMIPSTargetArgs for targeting Mips64. Enable use of
Akira Hatanaka [Mon, 26 Sep 2011 21:07:52 +0000 (21:07 +0000)]
Make necessary changes in AddMIPSTargetArgs for targeting Mips64. Enable use of
-mcpu.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140562 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCheckStringInit has side effects; make sure we don't run it in VerifyOnly mode, at...
Eli Friedman [Mon, 26 Sep 2011 19:09:09 +0000 (19:09 +0000)]
CheckStringInit has side effects; make sure we don't run it in VerifyOnly mode, at least for the moment.  <rdar://problem/10185490>.

Sebastian, please take a look at this; I'm not entirely sure it is the right thing to do.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140552 91177308-0d34-0410-b5e6-96231b3b80d8

13 years ago[libclang] Report implicit objc methods for properties when indexing.
Argyrios Kyrtzidis [Mon, 26 Sep 2011 19:05:37 +0000 (19:05 +0000)]
[libclang] Report implicit objc methods for properties when indexing.

Related to rdar://10087069.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140551 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a typo in the new VerifyOnly handling in SemaInit. No visible difference at...
Eli Friedman [Mon, 26 Sep 2011 18:53:43 +0000 (18:53 +0000)]
Fix a typo in the new VerifyOnly handling in SemaInit.  No visible difference at the moment, as far as I can tell.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140546 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a small note to BaseSubobject about where it is actually used.
Eli Friedman [Mon, 26 Sep 2011 18:36:39 +0000 (18:36 +0000)]
Add a small note to BaseSubobject about where it is actually used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140543 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix assertion hit when @encoding C++ classes. rdar://10172840 & http://llvm.org/PR10990
Argyrios Kyrtzidis [Mon, 26 Sep 2011 18:14:24 +0000 (18:14 +0000)]
Fix assertion hit when @encoding C++ classes. rdar://10172840 & http://llvm.org/PR10990

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140542 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd back support for a manually formatted section of the diagnostic
Chandler Carruth [Mon, 26 Sep 2011 16:43:25 +0000 (16:43 +0000)]
Add back support for a manually formatted section of the diagnostic
message. Specifically, we now only line-wrap the first line of te
diagnostic message and assume the remainder is manually formatted. While
adding it back, simplify the logic for doing this.

Finally, add a test that ensures we actually preserve this feature. =D
*Now* its not dead code. Thanks to Doug for the test case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140538 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate comments.
Eric Christopher [Mon, 26 Sep 2011 15:03:22 +0000 (15:03 +0000)]
Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140531 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix comment to reflect reality.
Eric Christopher [Mon, 26 Sep 2011 15:03:19 +0000 (15:03 +0000)]
Fix comment to reflect reality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140530 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRe-arrange and bitfieldify data members of CXXConstructExpr to save a
Douglas Gregor [Mon, 26 Sep 2011 14:47:03 +0000 (14:47 +0000)]
Re-arrange and bitfieldify data members of CXXConstructExpr to save a
little storage.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140529 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDiagnose attempts to use 'using typename' with a non-identifier name,
Douglas Gregor [Mon, 26 Sep 2011 14:30:28 +0000 (14:30 +0000)]
Diagnose attempts to use 'using typename' with a non-identifier name,
from Stepan Dyatkovskiy. Fixes PR10925.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140528 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHoist and beef up the asserts about the level of infrastructure expected
Chandler Carruth [Mon, 26 Sep 2011 11:38:46 +0000 (11:38 +0000)]
Hoist and beef up the asserts about the level of infrastructure expected
when working with a diagnostic attached to a source location. Also
comment more thoroughly why its important to handle non-location
diagnostic messages separately.

Finally, hoist the creation of the TextDiagnostic object up to the
beginning of the location-based diagnostics. This paves the way for
sinking more and more of the logic into this class. When everything
below this constructor is sunk into the TextDiagnostic class it should
be sufficiently "feature complete" to accomplish my two goals:
1) Have the printing of a macro expansion note use the exact same code
   as any other note.
2) Be able to implement clang_formatDiagnostic in terms of this class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140526 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSwitch the emission of diagnostics without a source location to
Chandler Carruth [Mon, 26 Sep 2011 11:25:30 +0000 (11:25 +0000)]
Switch the emission of diagnostics without a source location to
a dedicated path. The logic for such diagnostics is much simpler than
for others.

This begins to make an important separation in this routine. We expect
most (and most interesting) textual diagnostics to be made in the
presence of at least *some* source locations and a source manager.
However the DiagnosticConsumer must be prepared to diagnose errors even
when the source manager doesn't (yet) exist or when there is no location
information at all. In order to sink more and more logic into the
TextDiagnostic class while minimizing its complexity, my plan is to
force the DiagnosticConsumer to special case diagnosing any locationless
messages and then hand the rest to the TextDiagnostic class. I'd
appreciate any comments on this design. It requires a bit of code
duplication in order to keep interfaces simple. Alternatively, if we
really need TextDiagnostic to be capable of handling diagnostics even in
the absence of a viable SourceManager, then this split isn't necessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140525 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtract the actual printing of the message string into a helper
Chandler Carruth [Mon, 26 Sep 2011 11:19:35 +0000 (11:19 +0000)]
Extract the actual printing of the message string into a helper
function. Doing this conveniently requires moving the word wrapping to
use a StringRef which seems generally an improvement. There is a lot
that could be simplified in the word wrapping by using StringRef that
I haven't looked at yet...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140524 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGroup the helpers for word wrapping with the primary routine. No
Chandler Carruth [Mon, 26 Sep 2011 10:58:00 +0000 (10:58 +0000)]
Group the helpers for word wrapping with the primary routine. No
functionality changed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140523 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a test for the display of diagnostic options and categories. This
Chandler Carruth [Mon, 26 Sep 2011 10:42:40 +0000 (10:42 +0000)]
Add a test for the display of diagnostic options and categories. This
would have caught a bug I introduced during refactoring. Silly me
thinking this was all well tested already...

If any of this is already covered by other tests, let me know. I looked
around and didn't see any.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140522 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAssociate the macro arguments location map with a FileID instead
Argyrios Kyrtzidis [Mon, 26 Sep 2011 08:01:50 +0000 (08:01 +0000)]
Associate the macro arguments location map with a FileID instead
of a ContentCache, since multiple FileIDs can have the same ContentCache
but the expanded macro arguments locations will be different.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140521 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove SourceManager::getLocation().
Argyrios Kyrtzidis [Mon, 26 Sep 2011 08:01:45 +0000 (08:01 +0000)]
Remove SourceManager::getLocation().

It's not descriptive enough and it's just a call of translateFileLineCol()
followed by a call to getMacroArgExpandedLocation(), which is better to be
called explicitly since it has a certain cost and is not always required.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140520 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't map a file:line:col triplet that is inside the preamble range to
Argyrios Kyrtzidis [Mon, 26 Sep 2011 08:01:41 +0000 (08:01 +0000)]
Don't map a file:line:col triplet that is inside the preamble range to
a "loaded" location of the precompiled preamble.

Instead, handle specially locations of preprocessed entities:
-When looking up for preprocessed entities, map main file locations inside the
 preamble range to a preamble loaded location.
-When getting the source range of a preprocessing cursor, map preamble loaded
 locations back to main file locations.

Fixes rdar://10175093 & http://llvm.org/PR10999

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140519 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoProperly initialize Preprocessor::CurLexerKind to avoid use of uninitialized variable.
Zhongxing Xu [Mon, 26 Sep 2011 03:37:43 +0000 (03:37 +0000)]
Properly initialize Preprocessor::CurLexerKind to avoid use of uninitialized variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140514 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTurns out we tested for this typo.
Benjamin Kramer [Mon, 26 Sep 2011 02:32:23 +0000 (02:32 +0000)]
Turns out we tested for this typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140513 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd missing spaces in diagnostic messages.
Benjamin Kramer [Mon, 26 Sep 2011 02:14:16 +0000 (02:14 +0000)]
Add missing spaces in diagnostic messages.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140512 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDon't print a stray ] at the end of diagnostics.
Benjamin Kramer [Mon, 26 Sep 2011 02:14:13 +0000 (02:14 +0000)]
Don't print a stray ] at the end of diagnostics.

Also remove an obsolete utostr call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140511 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove VTable builder to AST
Peter Collingbourne [Mon, 26 Sep 2011 01:57:12 +0000 (01:57 +0000)]
Move VTable builder to AST

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140510 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoHave CodeGenVTables::GenerateConstructionVTable use VTableLayout
Peter Collingbourne [Mon, 26 Sep 2011 01:57:04 +0000 (01:57 +0000)]
Have CodeGenVTables::GenerateConstructionVTable use VTableLayout

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140509 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove vtable dumper call to VTableBuilder ctor
Peter Collingbourne [Mon, 26 Sep 2011 01:57:00 +0000 (01:57 +0000)]
Move vtable dumper call to VTableBuilder ctor

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140508 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoImplement VTableContext::createConstructionVTableLayout
Peter Collingbourne [Mon, 26 Sep 2011 01:56:55 +0000 (01:56 +0000)]
Implement VTableContext::createConstructionVTableLayout

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140507 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove all vtable layout data into new VTableLayout class
Peter Collingbourne [Mon, 26 Sep 2011 01:56:50 +0000 (01:56 +0000)]
Move all vtable layout data into new VTableLayout class

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140506 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove VTableComponent to header file
Peter Collingbourne [Mon, 26 Sep 2011 01:56:45 +0000 (01:56 +0000)]
Move VTableComponent to header file

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140505 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove vtable component accessors to VTableContext
Peter Collingbourne [Mon, 26 Sep 2011 01:56:41 +0000 (01:56 +0000)]
Move vtable component accessors to VTableContext

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140504 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen
Peter Collingbourne [Mon, 26 Sep 2011 01:56:36 +0000 (01:56 +0000)]
Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140503 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCreate a VTableContext class and start moving CodeGenVTables methods to it
Peter Collingbourne [Mon, 26 Sep 2011 01:56:30 +0000 (01:56 +0000)]
Create a VTableContext class and start moving CodeGenVTables methods to it

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140502 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove VTT builder to AST
Peter Collingbourne [Mon, 26 Sep 2011 01:56:24 +0000 (01:56 +0000)]
Move VTT builder to AST

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140501 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove BaseSubobject class to AST
Peter Collingbourne [Mon, 26 Sep 2011 01:56:16 +0000 (01:56 +0000)]
Move BaseSubobject class to AST

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140500 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove CodeGenModule field from VTTBuilder
Peter Collingbourne [Mon, 26 Sep 2011 01:56:10 +0000 (01:56 +0000)]
Remove CodeGenModule field from VTTBuilder

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140499 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMake the VTTBuilder class independent of LLVM core
Peter Collingbourne [Mon, 26 Sep 2011 01:56:06 +0000 (01:56 +0000)]
Make the VTTBuilder class independent of LLVM core

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140498 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRemove support for splitting word-wrapped diagnostic messages on newline
Chandler Carruth [Mon, 26 Sep 2011 01:44:29 +0000 (01:44 +0000)]
Remove support for splitting word-wrapped diagnostic messages on newline
characters. I could find no newline character in a diagnostic message,
and adding an assert to this code never fires in the testsuite.

I think this code is essentially dead, and was previously used for
a different purpose. If I just don't understand how it is we can end up
with a newline here please let me know (with a test case?) and I'll
revert.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140497 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoMove the word wrapped printing routine down to all the other helper
Chandler Carruth [Mon, 26 Sep 2011 01:44:27 +0000 (01:44 +0000)]
Move the word wrapped printing routine down to all the other helper
printing routines, clean up its doxyments and switch it to a camelCase
name as well. No functionality changed here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140496 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSwitch some of my recently added helper functions to use the proper
Chandler Carruth [Mon, 26 Sep 2011 01:30:09 +0000 (01:30 +0000)]
Switch some of my recently added helper functions to use the proper
style, and add doxyments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140495 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRewrite the printing of diagnostic options, categories, etc to actually
Chandler Carruth [Mon, 26 Sep 2011 01:21:58 +0000 (01:21 +0000)]
Rewrite the printing of diagnostic options, categories, etc to actually
use the ostream interface and avoid lots of temporary strings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140494 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename DiagnosticInfo to Diagnostic as per issue 5397
David Blaikie [Mon, 26 Sep 2011 01:18:08 +0000 (01:18 +0000)]
Rename DiagnosticInfo to Diagnostic as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140493 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename PathDiagnosticClient to PathDiagnosticConsumer as per issue 5397
David Blaikie [Mon, 26 Sep 2011 00:51:36 +0000 (00:51 +0000)]
Rename PathDiagnosticClient to PathDiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140492 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoDelete an extraneous line I missed.
Chandler Carruth [Mon, 26 Sep 2011 00:45:02 +0000 (00:45 +0000)]
Delete an extraneous line I missed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140491 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoA direct extraction of the rest of the option printing into a helper.
Chandler Carruth [Mon, 26 Sep 2011 00:44:09 +0000 (00:44 +0000)]
A direct extraction of the rest of the option printing into a helper.
This needs to be cleaned up to better use the ostream object, WIP.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140490 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename VerifyDiagnosticsClient to VerifyDiagnosticConsumer as per issue 5397
David Blaikie [Mon, 26 Sep 2011 00:38:03 +0000 (00:38 +0000)]
Rename VerifyDiagnosticsClient to VerifyDiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140489 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoStart a more correct pattern for factoring out the name printing. Slowly
Chandler Carruth [Mon, 26 Sep 2011 00:37:30 +0000 (00:37 +0000)]
Start a more correct pattern for factoring out the name printing. Slowly
I'm planning to switch a bunch of these over to use a raw_ostream
instead of += on a string object.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140488 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRevert r140484. That was *not* ready to be committed! Only halfway done,
Chandler Carruth [Mon, 26 Sep 2011 00:26:47 +0000 (00:26 +0000)]
Revert r140484. That was *not* ready to be committed! Only halfway done,
and completely broken at that.

Sorry, must remember to stash rather than commit. =]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140487 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix a formatting goof.
Chandler Carruth [Mon, 26 Sep 2011 00:21:50 +0000 (00:21 +0000)]
Fix a formatting goof.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140486 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename ChainedDiagnosticClient to ChainedDiagnosticConsumer as per issue 5397
David Blaikie [Mon, 26 Sep 2011 00:21:47 +0000 (00:21 +0000)]
Rename ChainedDiagnosticClient to ChainedDiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140485 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtract the diagnostic message formatting into a helper routine.
Chandler Carruth [Mon, 26 Sep 2011 00:21:47 +0000 (00:21 +0000)]
Extract the diagnostic message formatting into a helper routine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140484 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename StoredDiagnosticClient to StoredDiagnosticConsumer as per issue 5397
David Blaikie [Mon, 26 Sep 2011 00:01:39 +0000 (00:01 +0000)]
Rename StoredDiagnosticClient to StoredDiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140483 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename CaptureDiagnosticClient to CaptureDiagnosticConsumer as per issue 5397
David Blaikie [Sun, 25 Sep 2011 23:54:33 +0000 (23:54 +0000)]
Rename CaptureDiagnosticClient to CaptureDiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140482 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoExtract the logic for printing a colorful level name into a helper
Chandler Carruth [Sun, 25 Sep 2011 23:51:01 +0000 (23:51 +0000)]
Extract the logic for printing a colorful level name into a helper
function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140481 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename IgnoringDiagClient to IgnoringDiagConsumer as per issue 5397
David Blaikie [Sun, 25 Sep 2011 23:44:35 +0000 (23:44 +0000)]
Rename IgnoringDiagClient to IgnoringDiagConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140480 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename DiagnosticClient to DiagnosticConsumer as per issue 5397
David Blaikie [Sun, 25 Sep 2011 23:39:51 +0000 (23:39 +0000)]
Rename DiagnosticClient to DiagnosticConsumer as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140479 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoRename Diagnostic to DiagnosticsEngine as per issue 5397
David Blaikie [Sun, 25 Sep 2011 23:23:43 +0000 (23:23 +0000)]
Rename Diagnostic to DiagnosticsEngine as per issue 5397

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInline this method now that its completely trivial, and prepare for
Chandler Carruth [Sun, 25 Sep 2011 23:01:05 +0000 (23:01 +0000)]
Inline this method now that its completely trivial, and prepare for
hoisting parts of the text diagnostic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140477 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoShuffle some names around. 'CaretDiagnostic' is inaccurate as this needs
Chandler Carruth [Sun, 25 Sep 2011 22:54:56 +0000 (22:54 +0000)]
Shuffle some names around. 'CaretDiagnostic' is inaccurate as this needs
to handle non-caret diagnostics as well in order to be fully useful in
libclang etc. Also sketch out some more of my plans on this refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140476 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoActually remove the members of CaretDiagnostic no longer in use for
Chandler Carruth [Sun, 25 Sep 2011 22:31:58 +0000 (22:31 +0000)]
Actually remove the members of CaretDiagnostic no longer in use for
tracking the start and stop of macro expansion suppression. Also remove
the Columns variable which was just a convenience variable based on
DiagOpts. Instead we materialize it in the one piece of code that cared.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140475 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSink the logic for suppressing some macro expansion notes from the
Chandler Carruth [Sun, 25 Sep 2011 22:27:52 +0000 (22:27 +0000)]
Sink the logic for suppressing some macro expansion notes from the
TextDiagnosticPrinter into the CaretDiagnostic class. Several
interesting results from this:

- This removes a significant per-diagnostic bit of state from the
  CaretDiagnostic class, which should eventually allow us to re-use the
  object.
- It removes a redundant recursive walk of the macro expansion stack
  just to compute the depth. We don't need the depth until we're
  unwinding anyways, so we can just mark when we reach it.
- It also paves the way for several simplifications we can do to how we
  implement the suppression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140474 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoSplit the recursive macro expansion walk out from the routine which
Chandler Carruth [Sun, 25 Sep 2011 06:59:38 +0000 (06:59 +0000)]
Split the recursive macro expansion walk out from the routine which
emits a source snippet and caret line.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140467 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a missing increment to avoid infinite looping in the regression test.
Benjamin Kramer [Sun, 25 Sep 2011 02:41:26 +0000 (02:41 +0000)]
Add a missing increment to avoid infinite looping in the regression test.

Also make sure we set the error flag when correcting a typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140466 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoUpdate CMake build.
Benjamin Kramer [Sat, 24 Sep 2011 18:21:37 +0000 (18:21 +0000)]
Update CMake build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140462 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoAdd a special note for overload resolution when an initializer list argument
Sebastian Redl [Sat, 24 Sep 2011 17:48:32 +0000 (17:48 +0000)]
Add a special note for overload resolution when an initializer list argument
cannot be converted.
This is in preparation for overload resolution of initializer lists.
Currently, you will always get this message when you try to pass an init
list to an overloaded function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140461 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoCorrectly parse braced member initializers (even in delayed parsing) and correctly...
Sebastian Redl [Sat, 24 Sep 2011 17:48:25 +0000 (17:48 +0000)]
Correctly parse braced member initializers (even in delayed parsing) and correctly pass
the information on to Sema. There's still an incorrectness in the way template instantiation
works now, but that is due to a far larger underlying representational problem.
Also add a test case for various list initialization cases of scalars, which test this
commit as well as the previous one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140460 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoTreat list-initialization of scalars as a first-class citizen in C++11.
Sebastian Redl [Sat, 24 Sep 2011 17:48:14 +0000 (17:48 +0000)]
Treat list-initialization of scalars as a first-class citizen in C++11.
Allow empty initializer lists for scalars, which mean value-initialization.
Constant evaluation for single-element and empty initializer lists for scalars.
Codegen for empty initializer lists for scalars.
Test case comes in next commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140459 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoFix the expected error for narrowing conversions in generalized-initializers.cpp to
Sebastian Redl [Sat, 24 Sep 2011 17:48:06 +0000 (17:48 +0000)]
Fix the expected error for narrowing conversions in generalized-initializers.cpp to
match what the actual implementation of the error looks like.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140458 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoGive InitListChecker a verification-only mode, where it neither emits diagnostics nor
Sebastian Redl [Sat, 24 Sep 2011 17:48:00 +0000 (17:48 +0000)]
Give InitListChecker a verification-only mode, where it neither emits diagnostics nor
builds a semantic (structured) initializer list, just reports on whether it can match
the given list to the target type.
Use this mode for doing init list checking in the initial step of initialization, which
will eventually allow us to do overload resolution based on the outcome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140457 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoIn Initialization, add step kind SK_ListConstructorCall (list-initialization
Sebastian Redl [Sat, 24 Sep 2011 17:47:52 +0000 (17:47 +0000)]
In Initialization, add step kind SK_ListConstructorCall (list-initialization
resolves to a constructor call in C++11) and failure kind
FK_ListInitializationFailed (early InitListChecker run failed).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140456 91177308-0d34-0410-b5e6-96231b3b80d8

13 years agoInline Sema::CheckInitList into its only user.
Sebastian Redl [Sat, 24 Sep 2011 17:47:46 +0000 (17:47 +0000)]
Inline Sema::CheckInitList into its only user.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140455 91177308-0d34-0410-b5e6-96231b3b80d8