Sebastian Redl
6a43b1c435
A small error message improvement and some comment cleanup for static_cast.
...
llvm-svn: 58762
2008-11-05 17:54:26 +00:00
Ted Kremenek
2855a93f07
initXXX methods can return owned objects
...
llvm-svn: 58758
2008-11-05 16:54:44 +00:00
Douglas Gregor
cfd8ddc6de
Keep track of whether a C++ class is an aggregate. Don't allow initialization of non-aggregates with initializer lists.
...
llvm-svn: 58757
2008-11-05 16:20:31 +00:00
Douglas Gregor
6f5431543a
Implement C++ copy-initialization for declarations. There is now some
...
duplication in the handling of copy-initialization by constructor,
which occurs both for initialization of a declaration and for
overloading. The initialization code is due for some refactoring.
llvm-svn: 58756
2008-11-05 15:29:30 +00:00
Douglas Gregor
e8381c00eb
Initial implementation of parsing, semantic analysis, and AST-building
...
for constructor initializations, e.g.,
class A { };
class B : public A {
int m;
public:
B() : A(), m(17) { };
};
llvm-svn: 58749
2008-11-05 04:29:56 +00:00
Cedric Venet
0ce19ba350
Update CMakeLists.txt
...
llvm-svn: 58716
2008-11-04 20:31:17 +00:00
Daniel Dunbar
40346506f1
Remove stray character.
...
llvm-svn: 58713
2008-11-04 18:44:31 +00:00
Ted Kremenek
2afad46626
Update Xcode project.
...
llvm-svn: 58711
2008-11-04 18:39:58 +00:00
Anders Carlsson
a6b508a28c
Make it an error if an Objective-C declaration is not in the global scope.
...
llvm-svn: 58705
2008-11-04 16:57:32 +00:00
Chris Lattner
b8c18fa59a
LinkageSpecDecl is c++ specific, move it to DeclCXX
...
llvm-svn: 58704
2008-11-04 16:51:42 +00:00
Sebastian Redl
ee54797234
Some cleanup of the cast checkers. Don't canonicalize types when not needed. Use distinct diagnostics for distinct errors.
...
llvm-svn: 58700
2008-11-04 15:59:10 +00:00
Douglas Gregor
242ee9dfae
Fine-grained C++ status page
...
llvm-svn: 58699
2008-11-04 15:52:45 +00:00
Douglas Gregor
8ea1f53420
Add a new expression class, ObjCSuperExpr, to handle the Objective-C 'super'. Remove ObjCThis from PredefinedExpr
...
llvm-svn: 58698
2008-11-04 14:56:14 +00:00
Douglas Gregor
97a9c81b05
Create a new expression class, CXXThisExpr, to handle the C++ 'this' primary expression. Remove CXXThis from PredefinedExpr
...
llvm-svn: 58695
2008-11-04 14:32:21 +00:00
Douglas Gregor
5496d4caa0
Now that we have copy initialization support, use it for checking the default arguments
...
llvm-svn: 58692
2008-11-04 13:57:51 +00:00
Douglas Gregor
8e12c38115
Diagnose use of 'this' in a C++ default argument. Thanks to Eli for correcting my bogus assertion about it already being handled
...
llvm-svn: 58691
2008-11-04 13:41:56 +00:00
Sebastian Redl
273ce56d7a
Trivial style fix.
...
llvm-svn: 58689
2008-11-04 11:45:54 +00:00
Anders Carlsson
6b0dc85119
#define NULL as 0 when compiling as C++. This fixes the carbon.cpp and cocoa.mm test failures.
...
llvm-svn: 58685
2008-11-04 06:53:14 +00:00
Anders Carlsson
13abd7e98b
Implement lowering of va_arg in clang directly. (This is 32-bit X86 only for now).
...
llvm-svn: 58681
2008-11-04 05:30:00 +00:00
Anders Carlsson
4961890c07
Fix bug in va_copy
...
llvm-svn: 58680
2008-11-04 05:29:05 +00:00
Ted Kremenek
307b2c4078
Updated checker build.
...
llvm-svn: 58672
2008-11-04 01:24:32 +00:00
Ted Kremenek
24b1d9f57e
Handle prefix '_' that may appear in front of the name of 'Release' functions
...
llvm-svn: 58666
2008-11-04 00:36:12 +00:00
Ted Kremenek
eefdcea2ba
Fix use of uninitialized variable.
...
llvm-svn: 58663
2008-11-04 00:22:12 +00:00
Ted Kremenek
a3199323fe
Updated checker build.
...
llvm-svn: 58658
2008-11-04 00:03:24 +00:00
Ted Kremenek
90230557d7
Allow user toggling between plist and html output with scan-build/ccc-analyzer.
...
llvm-svn: 58657
2008-11-04 00:02:53 +00:00
Steve Naroff
8f97373af0
Update VC++ project file.
...
llvm-svn: 58656
2008-11-04 00:01:14 +00:00
Steve Naroff
c989a7b6c0
Fix <rdar://problem/6339636> clang ObjC rewriter: Assertion failed: FileID-1 < FileIDs.size() && "Invalid FileID!", file c:\cygwin\home\Administrator\llvm\tools\clang\include\clang/Basic/SourceManager.h, line 513
...
llvm-svn: 58654
2008-11-03 23:29:32 +00:00
Ted Kremenek
14f18653f6
Hook up the Plist diagnostic client to the driver.
...
Fix Plist output.
llvm-svn: 58652
2008-11-03 23:18:07 +00:00
Douglas Gregor
fa7431a807
Check that this cannot be used in a default argument. Happily, it was already implemented
...
llvm-svn: 58649
2008-11-03 22:47:57 +00:00
Ted Kremenek
0cbd963817
Add path diagnostics client for emitting path reports using Plists.
...
llvm-svn: 58647
2008-11-03 22:33:57 +00:00
Ted Kremenek
e868c00d5a
Rename 'HTMLDiagnostics.h' to 'PathDiagnosticClients.h'
...
llvm-svn: 58646
2008-11-03 22:31:48 +00:00
Douglas Gregor
c28b57d703
Implicit support for direct initialization of objects of class type, e.g.,
...
X x(5, 7);
llvm-svn: 58641
2008-11-03 20:45:27 +00:00
Daniel Dunbar
925dc26d51
Clarify performance experiments description based on feedback from
...
Eric C, thanks!
llvm-svn: 58634
2008-11-03 20:03:58 +00:00
Douglas Gregor
2fe9883a96
Standard conversion sequences now have a CopyConstructor field, to
...
cope with the case where a user-defined conversion is actually a copy
construction, and therefore can be compared against other standard
conversion sequences. While I called this a hack before, now I'm
convinced that it's the right way to go.
Compare overloads based on derived-to-base conversions that invoke
copy constructors.
Suppress user-defined conversions when attempting to call a
user-defined conversion.
llvm-svn: 58629
2008-11-03 19:09:14 +00:00
Douglas Gregor
0537942f3c
Add implicitly-declared default and copy constructors to C++ classes,
...
when appropriate.
Conversions for class types now make use of copy constructors. I've
replaced the egregious hack allowing class-to-class conversions with a
slightly less egregious hack calling these conversions standard
conversions (for overloading reasons).
llvm-svn: 58622
2008-11-03 17:51:48 +00:00
Douglas Gregor
ab13857072
Eliminate header dependency ASTContext -> TargetInfo
...
llvm-svn: 58613
2008-11-03 15:57:00 +00:00
Douglas Gregor
66583c5ff3
Implement C++ DR 106 and C++ DR 540, both of which deal with
...
reference-collapsing.
Implement diagnostic for formation of a reference to cv void.
Drop cv-qualifiers added to a reference type when the reference type
comes from a typedef.
llvm-svn: 58612
2008-11-03 15:51:28 +00:00
Douglas Gregor
8af6e6d415
Connect ASTContext to TargetInfo when determining the size_t, ptrdiff_t, and wchar_t types. Fixes recent breakage on Linux.
...
llvm-svn: 58609
2008-11-03 14:12:49 +00:00
Steve Naroff
3e7ced125b
Fix <rdar://problem/6336774> clang block rewriter: Assertion failed: Offset+NumBytes <= size() && "Invalid region to erase!", file c:\cygwin\home\Administrator\llvm\to ols\clang\include\clang/Rewrite/RewriteRope.h, line 219.
...
llvm-svn: 58607
2008-11-03 11:20:24 +00:00
Chris Lattner
8cc7be369c
Fix PR3001: if we have an error parsing an initializer, make sure to remove
...
the designator corresponding to it, otherwise Sema and later parsing will
get confused.
llvm-svn: 58603
2008-11-03 09:28:22 +00:00
Chris Lattner
7d7fff2303
privatize some methods.
...
llvm-svn: 58602
2008-11-03 09:11:11 +00:00
Ted Kremenek
3a5d515a82
Simplify the functions HtmlEsape and ShellEscape. We now properly print out the following command line in the HTML output: scan-build gcc -x c /dev/null -c -Dfoo='"string abc"'
...
Fixes <rdar://problem/6338651>
llvm-svn: 58600
2008-11-03 07:44:16 +00:00
Zhongxing Xu
c8c71979a6
Add some notes for SCA.
...
llvm-svn: 58597
2008-11-03 06:04:23 +00:00
Zhongxing Xu
8ea09cc542
Fix 80-col violations.
...
llvm-svn: 58596
2008-11-03 05:18:34 +00:00
Zhongxing Xu
2d330ef8fa
- Remove AnonTypedRegion, which is not to be used.
...
- Prepare AnonPointeeRegioin for later use.
llvm-svn: 58595
2008-11-03 04:12:24 +00:00
Sebastian Redl
1384553cbe
Source ranges for named cast diagnostics.
...
llvm-svn: 58570
2008-11-02 22:21:33 +00:00
Cedric Venet
1bb549685b
Add header files to CMake build solution. It use globing so it doesn't need to be manually maintained, but it won't automatically detect a new header. I think this is a good compromise for the header files, since there presence in the solution is just an help for the user. Moreover, a new header is often introduced with a new cpp source file which need a makefile change, which will regenerate the solution and detect the new header.
...
llvm-svn: 58566
2008-11-02 16:28:53 +00:00
Zhongxing Xu
de297f8198
Add function side-effect test cast.
...
llvm-svn: 58565
2008-11-02 13:17:44 +00:00
Zhongxing Xu
2e8e604704
1. When a pointer to struct is used as an argument, GRSimpleVals::EvalCall()
...
sets the whole struct to Unknown. Then we cannot assume the V passed to
BindStruct() is always a CompoundVal. When it is an UnknownVal, we call
BindStructToVal(UnknownVal).
2. Change the signature of InitializeStructToUndefined() to BindStructToVal()
to reuse the code.
llvm-svn: 58564
2008-11-02 12:13:30 +00:00
Zhongxing Xu
72cf861fba
Add defined in if().
...
llvm-svn: 58562
2008-11-02 10:58:16 +00:00