Ted Kremenek
1507dbfbfc
Use llvm::errs() instead of cerr.
...
llvm-svn: 58054
2008-10-23 23:55:40 +00:00
Ted Kremenek
40fcc594b8
Convert InheritanceHierarchyWriter to use llvm::raw_ostream instead of std::ostream.
...
llvm-svn: 58053
2008-10-23 23:51:23 +00:00
Ted Kremenek
45e2b90d3d
Added driver option "-cxx-inheritance-view" for viewing the C++ hierarchy of a class in GraphViz.
...
llvm-svn: 58051
2008-10-23 23:36:29 +00:00
Ted Kremenek
f000308467
Added iterators for types.
...
llvm-svn: 58050
2008-10-23 23:35:43 +00:00
Daniel Dunbar
340b5ddcf9
Fix regression in comparison of qualified id; == operator was being
...
created with LHS and RHS whose types didn't match.
llvm-svn: 58049
2008-10-23 23:30:52 +00:00
Steve Naroff
e5d0011007
Add some files to VC++ project.
...
llvm-svn: 58047
2008-10-23 23:20:50 +00:00
Ted Kremenek
8c2b94b787
Updated Xcode project.
...
llvm-svn: 58046
2008-10-23 23:15:03 +00:00
Ted Kremenek
049ba7fbb1
For Radar reporting, null dereferences should be default classified as "Crash/Hang/Data loss" <rdar://problem/6315624>
...
llvm-svn: 58045
2008-10-23 21:36:52 +00:00
Douglas Gregor
9d6290baf1
Clean up and document the representation of C++ base classes
...
llvm-svn: 58040
2008-10-23 18:13:27 +00:00
Daniel Dunbar
6a962b162c
Hook "fast" code generation to -O0.
...
llvm-svn: 58035
2008-10-23 05:59:43 +00:00
Daniel Dunbar
71880e738a
Add -O[0-3s] support (following llvm-gcc).
...
- Passes match llvm-gcc but many of the switches aren't wired.
llvm-svn: 58034
2008-10-23 05:50:47 +00:00
Zhongxing Xu
9c4bc9dd33
Add an assertion to make our intention more clear.
...
llvm-svn: 58030
2008-10-23 04:19:25 +00:00
Douglas Gregor
01bef3c016
If NDEBUG is set, don't include any of the code for visualizing inheritance hierarchies
...
llvm-svn: 58029
2008-10-23 03:52:39 +00:00
Zhongxing Xu
b0a4875b42
Let StoreManager do different cast on arrays. BasicStore will just keep it intact.
...
llvm-svn: 58028
2008-10-23 03:10:39 +00:00
Ted Kremenek
dfaeaed0f6
Updated checker build.
...
llvm-svn: 58027
2008-10-23 02:50:14 +00:00
Ted Kremenek
c5092cc061
Temporarily mark this test XFAIL.
...
llvm-svn: 58024
2008-10-23 01:57:31 +00:00
Ted Kremenek
cc3d18877a
Disable warning about potential leaks of returned values until we test it a little more (lots of noise).
...
llvm-svn: 58021
2008-10-23 01:56:15 +00:00
Zhongxing Xu
e7104dcab6
Added a method to ElementRegion.
...
llvm-svn: 58020
2008-10-23 01:35:34 +00:00
Douglas Gregor
5c407d9a9b
Add support for conversions from a pointer-to-derived to a
...
pointer-to-base. Also, add overload ranking for pointer conversions
(for both pointer-to-void and derived-to-base pointer conversions).
Note that we do not yet diagnose derived-to-base pointer conversion
errors that stem from ambiguous or inacessible base classes. These
aren't handled during overload resolution; rather, when the conversion
is actually used we go ahead and diagnose the error.
llvm-svn: 58017
2008-10-23 00:40:37 +00:00
Ted Kremenek
b205ff64e7
Update Xcode project. We still get a link error, however, because of an LLVM library that isn't being linked in for CodeGen (will fix).
...
llvm-svn: 58015
2008-10-23 00:00:24 +00:00
Ted Kremenek
631ff239fc
Warn about potentially leaked objects that are returned from methods whose names do not follow the Cocoa Memory Management guidelines.
...
llvm-svn: 58012
2008-10-22 23:56:21 +00:00
Steve Naroff
9eca18e4ed
Fix <rdar://problem/6312683> clang block rewriter:
...
llvm-svn: 58011
2008-10-22 23:42:04 +00:00
Argyrios Kyrtzidis
1a527ea1e5
Restrict creation of OverloadedFunctionDecl only to C++ (it was getting used for invalid redeclarations on C).
...
llvm-svn: 58008
2008-10-22 23:08:24 +00:00
Steve Naroff
b0c653a649
Fix <rdar://problem/6311947> clang on xcode (regression): error: use of undeclared identifier 'expandedValue'.
...
Mea culpa: I introduced this regresson in the following 2 commits: r57529 (10/14), r57841 (10/20).
llvm-svn: 58007
2008-10-22 22:40:28 +00:00
Ted Kremenek
a08a05e541
Updated checker build.
...
llvm-svn: 58005
2008-10-22 21:53:52 +00:00
Douglas Gregor
d8c7476bf3
Remove the GraphWriter-based version of the C++ class inheritance visualization, since it isn't being used and can't handle virtual bases properly
...
llvm-svn: 58002
2008-10-22 21:25:12 +00:00
Douglas Gregor
dff6a8eeef
Added GraphViz visualization of C++ inheritance hierarchies.
...
Factored the QualTypeOrdering predicate into its own header
(TypeOrdering.h), now that it is used in two places.
llvm-svn: 58001
2008-10-22 21:13:31 +00:00
Argyrios Kyrtzidis
2147e7d88b
Now that DeclRefExpr accepts a NamedDecl, use a DeclRefExpr for when a CXXFieldDecl is referenced inside a method.
...
llvm-svn: 58000
2008-10-22 21:00:29 +00:00
Ted Kremenek
9a96bf22ec
Enhance reference-count checker to correctly identify CG "release" functions. This fixes <rdar://problem/6303488>.
...
llvm-svn: 57997
2008-10-22 20:54:52 +00:00
Steve Naroff
1df62692f2
Fix <rdar://problem/6257675> error: member reference base type ('NSUserDefaults *') is not a structure or union.
...
Teach Sema::ActOnMemberReferenceExpr() to look through local category implementations associated with the class.
llvm-svn: 57995
2008-10-22 19:16:27 +00:00
Daniel Dunbar
c49d71ea61
Only create the target machine when emitting assembly.
...
llvm-svn: 57993
2008-10-22 18:29:51 +00:00
Douglas Gregor
29a9247ec2
Add representation of base classes in the AST, and verify that we
...
don't have duplicated direct base classes.
Seriliazation of base class specifiers is not yet implemented.
llvm-svn: 57991
2008-10-22 17:49:05 +00:00
Daniel Dunbar
254be031df
[LLVM up] Get rid of std::ostream usage from Backend.cpp
...
llvm-svn: 57990
2008-10-22 17:40:45 +00:00
Chris Lattner
720d515ee9
Add support for assembler-with-cpp (preprocessed .S files), patch by
...
Roman Divacky!
llvm-svn: 57988
2008-10-22 17:29:21 +00:00
Ted Kremenek
7c3a364355
Update server URL for checker build.
...
llvm-svn: 57981
2008-10-22 15:33:19 +00:00
Douglas Gregor
4b62ec6353
QualType::isMoreQualifiedThan and isAtLeastAsQualifiedAs assert that we
...
aren't trying to compare with address-space qualifiers (for now).
Clean up handing of DeclRefExprs in Expr::isLvalue and refactor part
of the check into a static DeclCanBeLvalue.
llvm-svn: 57980
2008-10-22 15:04:37 +00:00
Zhongxing Xu
da84f683c8
Add test case for FuncDecl and function pointer variable.
...
llvm-svn: 57979
2008-10-22 14:39:20 +00:00
Douglas Gregor
e1eb9d8cc4
Implement ranking of standard conversion sequences by their qualification
...
conversions (e.g., comparing int* -> const int* against
int* -> const volatile int*); see C++ 13.3.3.2p3 bullet 3.
Add Sema::UnwrapSimilarPointerTypes to simplify the control flow of
IsQualificationConversion and CompareQualificationConversion (and fix
the handling of the int* -> volatile int* conversion in the former).
llvm-svn: 57978
2008-10-22 14:17:15 +00:00
Zhongxing Xu
2fbc35443d
Add a bunch of getLValue* methods to RegionStore.
...
llvm-svn: 57977
2008-10-22 13:44:38 +00:00
Zhongxing Xu
c5382eae80
Adjust parameter order to more natural one.
...
llvm-svn: 57964
2008-10-22 09:00:19 +00:00
Zhongxing Xu
c272152919
Exprs of function type is another special case for ImplicitCast.
...
llvm-svn: 57963
2008-10-22 08:02:16 +00:00
Douglas Gregor
bc55da5768
Move Sema::GetNonReferenceType to QualType::getNonReferenceType and make it inline
...
llvm-svn: 57951
2008-10-22 04:14:44 +00:00
Chris Lattner
b795443082
some minor cleanups to ParseObjCTypeName:
...
1. Remove a bogus assertion, clients other than sema can return a
null pointer from actions that result in ParseTypeName returning null.
2. Remove dead RParenLoc variable.
3. Simplify control flow handling error conditions.
4. On a major failure, we should skip until ')' not until '}'.
llvm-svn: 57949
2008-10-22 03:52:06 +00:00
Daniel Dunbar
09b4e71e34
Update to use raw_ostream for PrintModulePass.
...
- Stop playing fast and loose with the std stream.
llvm-svn: 57948
2008-10-22 03:28:13 +00:00
Douglas Gregor
ea2d4211e5
Fix a thinko in the qualification-conversion check when the qualificaitons are disjoint, and add some overloading-based tests of qualification conversions
...
llvm-svn: 57942
2008-10-22 00:38:21 +00:00
Douglas Gregor
293a3c6778
Functions can be lvalues in C++, but not modifiable lvalues
...
llvm-svn: 57941
2008-10-22 00:03:08 +00:00
Daniel Dunbar
68a277cfac
Commito, didn't mean to remove this header.
...
llvm-svn: 57938
2008-10-21 23:54:00 +00:00
Daniel Dunbar
c13935e8be
[LLVM up] Add basic -S option to clang.
...
- Split backend related consumer out into Backend.cpp, replaces
LLVMCodeGenWriter.
- Structure follows llvm-gcc to some extent.
- Still need to implement all the options which impact code
generation and the optimization passes which llvm-gcc uses at
various levels.
llvm-svn: 57936
2008-10-21 23:49:24 +00:00
Douglas Gregor
9a6579340f
Initial step toward supporting qualification conversions (C++ 4.4).
...
Changes:
- Sema::IsQualificationConversion determines whether we have a qualification
conversion.
- Sema::CheckSingleAssignment constraints now follows the C++ rules in C++,
performing an implicit conversion from the right-hand side to the type of
the left-hand side rather than checking based on the C notion of
"compatibility". We now rely on the implicit-conversion code to
determine whether the conversion can happen or
not. Sema::TryCopyInitialization has an ugly reference-related
hack to cope with the initialization of references, for now.
- When building DeclRefExprs, strip away the reference type, since
there are no expressions whose type is a reference. We'll need to
do this throughout Sema.
- Expr::isLvalue now permits functions to be lvalues in C++ (but not
in C).
llvm-svn: 57935
2008-10-21 23:43:52 +00:00
Ted Kremenek
518b17e8f3
Updated checker build.
...
llvm-svn: 57931
2008-10-21 21:56:56 +00:00