Devang Patel
5b294f4330
Enable "debug info attached to an instruction" mode.
...
llvm-svn: 83928
2009-10-12 23:31:25 +00:00
Douglas Gregor
e3afaeb7e4
Minor CSS fix
...
llvm-svn: 83924
2009-10-12 23:15:14 +00:00
Douglas Gregor
ef06ccf8d0
When declaring a class template whose name is qualified, make sure
...
that the scope in which it is being declared is complete. Also, when
instantiating a member class template's ClassTemplateDecl, be sure to
delay type creation so that the resulting type is dependent. Ick.
llvm-svn: 83923
2009-10-12 23:11:44 +00:00
Douglas Gregor
0347f40eba
Minor margin fix
...
llvm-svn: 83918
2009-10-12 22:52:00 +00:00
Douglas Gregor
775b837976
Test explicit specialization involving multiple template<> headers
...
llvm-svn: 83914
2009-10-12 22:33:31 +00:00
Devang Patel
dac79decf3
There is no need to attach debug location info with alloca instruction.
...
llvm-svn: 83913
2009-10-12 22:29:02 +00:00
Devang Patel
551e112e99
Encode long double.
...
llvm-svn: 83912
2009-10-12 22:28:31 +00:00
Douglas Gregor
ca027af608
Permit explicit specialization of member functions of class templates
...
that are declarations (rather than definitions). Also, be sure to set
the access specifiers properly when instantiating the declarations of
member function templates.
llvm-svn: 83911
2009-10-12 22:27:17 +00:00
John McCall
e724ae92a8
More appropriate API usage.
...
llvm-svn: 83910
2009-10-12 22:25:59 +00:00
John McCall
d5707abdfd
Implement -Wparentheses: warn about using assignments in contexts that require
...
conditions. Add a fixit to insert the parentheses. Also fix a very minor
possible memory leak in 'for' conditions.
Fixes PR 4876 and rdar://problem/7289172
llvm-svn: 83907
2009-10-12 21:59:07 +00:00
Douglas Gregor
2210c9cd6e
Test explicit specializations of static data members that are declarations, not definitions
...
llvm-svn: 83904
2009-10-12 21:37:59 +00:00
Douglas Gregor
a2fe1fe208
Yet another test for explicit specialization, this one involving linkage
...
llvm-svn: 83901
2009-10-12 21:21:22 +00:00
Anders Carlsson
1d116976b4
Store the key function of a record decl inside CGRecordLayout.
...
llvm-svn: 83900
2009-10-12 21:16:22 +00:00
Ted Kremenek
289ae4f454
Use a BumpPtrAllocator to allocate all aspects of CFG, including CFGBlocks, successor and predecessor vectors, etc.
...
Speedup: when doing 'clang-cc -analyze -dump-cfg' (without actual printing, just
CFG building) on the amalgamated SQLite source (all of SQLite in one source
file), runtime reduced by 9%.
This fixes: <rdar://problem/7250745>
llvm-svn: 83899
2009-10-12 20:55:07 +00:00
Mike Stump
b9a9a7c0ad
Fixup windows include paths. Patch by John Thompson.
...
llvm-svn: 83898
2009-10-12 20:50:45 +00:00
Douglas Gregor
1fc79dda69
More tests for explicit template specialization
...
llvm-svn: 83896
2009-10-12 20:45:50 +00:00
Douglas Gregor
00bb0cbfa5
Add test for last commit
...
llvm-svn: 83893
2009-10-12 20:23:10 +00:00
Douglas Gregor
06db9f50a2
Diagnose the declaration of explicit specializations after an implicit
...
instantiation has already been required. To do so, keep track of the
point of instantiation for anything that can be instantiated.
llvm-svn: 83890
2009-10-12 20:18:28 +00:00
Fariborz Jahanian
e7196431c1
Handle built-in unary operators when reporting ambiguities.
...
wip - To prune excessive reporting.
llvm-svn: 83889
2009-10-12 20:11:40 +00:00
Anders Carlsson
bcee4a7b6b
Fix test.
...
llvm-svn: 83888
2009-10-12 20:06:34 +00:00
Anders Carlsson
a1b54fdbe1
Even more devirtualization cleverness.
...
llvm-svn: 83886
2009-10-12 19:59:15 +00:00
Ted Kremenek
a81b3256a4
Allow BumpVectorContext to conditionally own the underlying BumpPtrAllocator.
...
llvm-svn: 83884
2009-10-12 19:54:17 +00:00
Anders Carlsson
2a01709204
More devirtualization improvements.
...
llvm-svn: 83883
2009-10-12 19:51:33 +00:00
Anders Carlsson
b61301f353
Devirtualize calls on temporaries. A().f() for example.
...
llvm-svn: 83882
2009-10-12 19:45:47 +00:00
Anders Carlsson
d7432dfb0a
Factor out devirtualization checking into a separate function and make it handle references correctly.
...
llvm-svn: 83880
2009-10-12 19:41:04 +00:00
Fariborz Jahanian
65694b413d
Use CanQualType (instead of QualType) to store collection of visible
...
canonical conversion types.
llvm-svn: 83869
2009-10-12 18:36:50 +00:00
Fariborz Jahanian
574de2c5a4
If built-in operators could not be selected because of ambiguity in
...
user-defined type conversions, issue list of ambiguites in addition
to the diagnostic. So, clang now issues the following:
b.cpp:19:19: error: left hand operand to ->* must be a pointer to class compatible with the right hand operand, but is 'struct C1'
int i = c1->*pmf;
~~^
b.cpp:19:19: note: because of ambiguity in conversion of 'struct C1' to 'struct E *'
b.cpp:5:5: note: candidate function
operator E*();
^
b.cpp:11:5: note: candidate function
operator E*();
^
llvm-svn: 83862
2009-10-12 17:51:19 +00:00
Axel Naumann
a7e200e6f7
Don't install Makefiles nor tablegen input in include/.
...
Fix exclusion of .tmp, which in turn enables installation of $(PROJ_OBJ_ROOT)/tools/clang/include/*.inc.
llvm-svn: 83855
2009-10-12 16:42:18 +00:00
Edward O'Callaghan
e4ab8eacf7
Typo in AddGnuCPlusPlusIncludePaths.
...
llvm-svn: 83847
2009-10-12 12:02:47 +00:00
Anders Carlsson
b5296558f1
If the base type of a member call is a record type we don't need to emit a virtual call.
...
llvm-svn: 83816
2009-10-11 23:55:52 +00:00
Benjamin Kramer
bb0a07bf92
Remove dead variable.
...
llvm-svn: 83808
2009-10-11 22:57:54 +00:00
Benjamin Kramer
2e8301dd62
Add CGVtable.cpp to CMakeLists.
...
llvm-svn: 83800
2009-10-11 22:22:38 +00:00
Anders Carlsson
2bb27f53e0
Move the vtable builder to CGVtable.cpp, general cleanup.
...
llvm-svn: 83798
2009-10-11 22:13:54 +00:00
Anders Carlsson
2295f31810
Change mangleCXXVtable and mangleCXXRtti to take CXXRecordDecls instead of QualTypes.
...
llvm-svn: 83793
2009-10-11 21:24:51 +00:00
Benjamin Kramer
3ce29858e9
CMake mingw build fixes.
...
- llvm's libs must be linked after clang's
- libLLVMSystem depends on psapi on win32 (get_system_libs has it)
- CIndex builds successfully on mingw now
llvm-svn: 83773
2009-10-11 12:22:00 +00:00
Sebastian Redl
8046049942
This ought to complete exception spec support. Man, am I glad.
...
llvm-svn: 83767
2009-10-11 09:14:57 +00:00
Sebastian Redl
6e4c871855
Types appearing more than once in a spec shouldn't matter.
...
llvm-svn: 83766
2009-10-11 09:11:23 +00:00
Sebastian Redl
4915e63d3b
Test exception spec compatibility on return type and parameters.
...
Along the way, use RequireCompleteType when testing exception spec types.
Separate all the ugly spec stuff into its own file.
llvm-svn: 83764
2009-10-11 09:03:14 +00:00
Zhongxing Xu
b8edf2a4dd
Introduces a new BindingVal which combines direct and
...
default binding for regions. This allows us to simply a lot of code. A
further simplification could be done is that many methods of
regionstore can only work on Store instead of GRState.
llvm-svn: 83762
2009-10-11 08:08:02 +00:00
Anders Carlsson
6ce51fdf43
Move our (non-existing) RTTI emission code into CGRtti.cpp. No functionality change.
...
llvm-svn: 83732
2009-10-10 20:49:04 +00:00
Fariborz Jahanian
07ca72725a
Generate weak read barriers when reading a weak __block
...
variable inside the block.
llvm-svn: 83729
2009-10-10 20:07:56 +00:00
Sebastian Redl
5d43164bc2
Implement the core checking for compatible exception specifications in assignment and initialization.
...
The exception specification of the assignee must be the same or a subset of the target. In addition, exception specifications on arguments and return types must be equivalent, but this is not implemented yet.
This currently produces two diagnostics for every invalid assignment/initialization, due to the diagnostic produced outside PerformImplicitConversion, e.g. in CheckSingleInitializer. I don't know how to suppress this; in any case I think it is the wrong place for a diagnostic, since there are other diagnostics produced inside the function. So I'm leaving it as it is for the moment.
llvm-svn: 83710
2009-10-10 12:04:10 +00:00
John McCall
6538c93050
Qualified lookup through using declarations. Diagnose a new type of ambiguity.
...
Split the various ambiguous result enumerators into their own enum. Tests
for most of C++ [namespace.qual].
llvm-svn: 83700
2009-10-10 05:48:19 +00:00
Anders Carlsson
c4859baea4
Check that the return type is complete when calling a member function.
...
llvm-svn: 83694
2009-10-10 00:06:20 +00:00
Anders Carlsson
1040f2e9db
Add another test.
...
llvm-svn: 83693
2009-10-09 23:58:25 +00:00
Anders Carlsson
7f84ed9287
Add CheckCallReturnType and start using it for regular call expressions. This will improve error messages. For
...
struct B;
B f();
void g() {
f();
}
We now get
t.cpp:6:3: error: calling 'f' with incomplete return type 'struct B'
f();
^~~
t.cpp:3:3: note: 'f' declared here
B f();
^
t.cpp:1:8: note: forward declaration of 'struct B'
struct B;
^
llvm-svn: 83692
2009-10-09 23:51:55 +00:00
Douglas Gregor
b385b7c62e
Dead Code Elimination
...
llvm-svn: 83686
2009-10-09 22:56:12 +00:00
Douglas Gregor
7d195b93d8
Add some FIXMEs
...
llvm-svn: 83685
2009-10-09 22:54:25 +00:00
Douglas Gregor
8413751fab
Experimental, ultra-hacking Emacs minor mode for Clang-based code completion.
...
llvm-svn: 83681
2009-10-09 22:17:40 +00:00
Douglas Gregor
58acf32af2
Minor tweaks for code-completion:
...
- Filter out unnamed declarations
- Filter out declarations whose names are reserved for the
implementation (e.g., __bar, _Foo)
- Place OVERLOAD: or COMPLETION: at the beginning of each
code-completion result, so we can easily separate them from other
compilation results.
llvm-svn: 83680
2009-10-09 22:16:47 +00:00
Anders Carlsson
82a108b4ed
Update Xcode project.
...
llvm-svn: 83679
2009-10-09 22:16:24 +00:00
Devang Patel
3028a43f57
Revert 83567.
...
llvm-svn: 83676
2009-10-09 22:06:15 +00:00
John McCall
9f3059a192
Refactor the LookupResult API to simplify most common operations. Require users to
...
pass a LookupResult reference to lookup routines. Call out uses which assume a single
result.
llvm-svn: 83674
2009-10-09 21:13:30 +00:00
Douglas Gregor
7f34baeb4b
When declaring a friend class template, we may end up finding an
...
injected-class-name (e.g., when we're referring to other
specializations of the current class template). Make sure that we see
the template rather than the injected-class-name. Fixes PR4768.
llvm-svn: 83672
2009-10-09 21:11:42 +00:00
Mike Stump
1ba6edb030
Efficiency refinements.
...
llvm-svn: 83666
2009-10-09 20:16:49 +00:00
Axel Naumann
c5b2d917de
Do not install CMakeLists.txt (nor any other txt files) into include/ subdirectories
...
llvm-svn: 83665
2009-10-09 20:03:20 +00:00
Mike Stump
e752333c66
Push all the way out to 80.
...
llvm-svn: 83664
2009-10-09 19:42:16 +00:00
Axel Naumann
04ca7e181f
Passing const Triple& is sufficient for AddDefaultSystemIncludePaths()
...
llvm-svn: 83663
2009-10-09 19:37:12 +00:00
Mike Stump
fc8ff639cb
Allow customization for the producer information in the debug output.
...
llvm-svn: 83659
2009-10-09 18:38:12 +00:00
Mike Stump
727170d2d8
Allow customization for the version line.
...
llvm-svn: 83652
2009-10-09 17:31:54 +00:00
Fariborz Jahanian
0fe5e0308e
Produce good looking diagnostics on ambiguous built-in operators.
...
Now we produce things like:
bug1.cpp:21:11: error: use of overloaded operator '->*' is ambiguous
int i = c->*pmf; // expected-error {{use of overloaded operator '->*' is ambiguous}} \
~^ ~~~
bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int const struct A::*')
bug1.cpp:21:11: note: built-in candidate operator ->* ('struct A volatile *', 'int restrict struct A::*')
...
Still need to look at an issue (indicated as FIXME in the test case).
llvm-svn: 83650
2009-10-09 17:09:58 +00:00
Fariborz Jahanian
4dc1246d87
Use the new API for applying the qualifiers on built-in '->*'
...
operator's types.
llvm-svn: 83648
2009-10-09 16:34:40 +00:00
Zhongxing Xu
9b6a9be301
Remove unused code.
...
llvm-svn: 83612
2009-10-09 02:24:00 +00:00
Zhongxing Xu
e77cd12f10
Make the behavior explicit by not using the method call.
...
llvm-svn: 83611
2009-10-09 02:18:31 +00:00
Zhongxing Xu
fd15882213
Remove unused code.
...
llvm-svn: 83610
2009-10-09 02:12:00 +00:00
Mike Stump
0d479e6653
Avoid warning.
...
llvm-svn: 83609
2009-10-09 01:25:47 +00:00
Fariborz Jahanian
29f9d39568
Improve on reporting ambiguity involving built-in candidates.
...
I still don't like it but it is improvement over what we had.
llvm-svn: 83603
2009-10-09 00:13:15 +00:00
Mike Stump
acdc3158b3
Add a refactor pointer...
...
llvm-svn: 83599
2009-10-08 23:57:53 +00:00
Steve Naroff
3b08630b06
- Fixup SortCodeCompleteResult() to properly sort keywords on Mac OS (compare was system dependent). Worked on Linux, failed on Mac OS (which caused the recently added testcase to fail on Linux).
...
- Sort results in testcase.
llvm-svn: 83597
2009-10-08 23:45:10 +00:00
Mike Stump
904ad90bc8
Set up include paths for VC++ and Cygwin headers, along with the
...
existing MinGW headers, plus the newer 4.4.0 version. Patch by John
Thompson.
llvm-svn: 83594
2009-10-08 23:29:47 +00:00
Mike Stump
f8c1f0d1f0
Speed up testing by avoiding stdio.h, also helps testing on windows.
...
Patch by John Thompson.
llvm-svn: 83593
2009-10-08 23:05:06 +00:00
Mike Stump
af9afe9bc9
"Someone pointed out that in my previous Targets.cpp patch I didn't
...
handle the long size difference for one of the Windows targets." Patch
by John Thompson.
llvm-svn: 83592
2009-10-08 23:00:00 +00:00
Mike Stump
c99c022841
This fixes support for complex literals, reworked to avoid a goto, and
...
to add a flag noting the presence of a Microsoft extension suffix (i8,
i16, i32, i64). Patch by John Thompson.
llvm-svn: 83591
2009-10-08 22:55:36 +00:00
Douglas Gregor
1245e6ff69
Tests for C++ [expr], from James Porter!
...
llvm-svn: 83588
2009-10-08 22:38:14 +00:00
Mike Stump
e07e33a196
Tolerate .exe on executables. Patch by John Thompson. Changed * to .* by me.
...
llvm-svn: 83586
2009-10-08 22:30:02 +00:00
Mike Stump
8409f9102b
Tolerate .exe on executables. Patch by John Thompson.
...
llvm-svn: 83584
2009-10-08 22:25:29 +00:00
Fariborz Jahanian
8ae5b0a18b
Fix up error reporting when object cannot be constructed
...
because of missing default constructor of a member.
Fixes pr5154.
llvm-svn: 83583
2009-10-08 22:15:49 +00:00
Douglas Gregor
01249503fe
Installation of Clang libraries and headers, from Axel Naumann!
...
llvm-svn: 83582
2009-10-08 22:15:31 +00:00
Mike Stump
03686660b1
In VC++, the *printf functions put an extra "0" in the exponent part
...
of a floating point number. This add regular expressions to account
for this. Patch by John Thompson.
llvm-svn: 83581
2009-10-08 21:57:41 +00:00
Steve Naroff
936354c62a
Add code completion support for ObjC property declarations/attributes.
...
llvm-svn: 83579
2009-10-08 21:55:05 +00:00
Mike Stump
c2eeac617d
Convert some tests to FileCheck to be more portable. Patch by John Thompson.
...
llvm-svn: 83578
2009-10-08 21:52:07 +00:00
Douglas Gregor
3beaf9bbcd
Implement support for -Wunused-variable, from Oscar Bonilla!
...
llvm-svn: 83577
2009-10-08 21:35:42 +00:00
Douglas Gregor
18289eeb1d
Fix an assertion in the XML output, from Olaf Krzikalla!
...
llvm-svn: 83576
2009-10-08 21:29:50 +00:00
Devang Patel
abf71fa9fc
Record location info before emiting alloca for arguments. This allows arguments to have proper location info.
...
llvm-svn: 83567
2009-10-08 18:53:37 +00:00
Fariborz Jahanian
03b4f666ed
Implement [expr.mptr.oper]p6 for '->*' operator.
...
llvm-svn: 83562
2009-10-08 18:00:39 +00:00
Ted Kremenek
490b8c0f5b
Remove use of std::ofstream in HTMLDiagnostics.cpp.
...
llvm-svn: 83560
2009-10-08 17:44:41 +00:00
Anders Carlsson
a18ed9b113
If a global initializer has a non-trivial constructor or destructor, we never want to defer generation of it, even if it is declared static.
...
With this change we're finally able to compile and run the (infamous)
#include <string>
#include <iostream>
int main(int argc, char **argv) {
std::cout << "Hello, World" << std::endl;
}
$ clang hello.cpp -lstdc++ -o hello
$ ./hello
Hello, World
llvm-svn: 83559
2009-10-08 17:28:59 +00:00
Anders Carlsson
9776bd61bc
Port test over to FileCheck.
...
llvm-svn: 83558
2009-10-08 17:22:47 +00:00
Anders Carlsson
3482b819db
Mangle std::basic_ostream<char, std::char_traits<char>> as So.
...
llvm-svn: 83557
2009-10-08 17:20:26 +00:00
Douglas Gregor
eeffde3a1d
Add more testing for the properties of explicit specialization.
...
Also, eliminate a redundant diagnostic by marking a variable declared
with incomplete type as an invalid declaration.
llvm-svn: 83553
2009-10-08 16:41:22 +00:00
Fariborz Jahanian
4ff5f05782
Refactoring to further simplify collection of visible conversion
...
functions.
llvm-svn: 83552
2009-10-08 16:33:37 +00:00
Douglas Gregor
19c52729ed
Don't complain about out-of-line explicit specializations of member
...
function and member function templates that are not definitions. Add
more tests to ensure that explicit specializations of member function
templates prevent instantiation.
llvm-svn: 83550
2009-10-08 15:54:21 +00:00
Douglas Gregor
1e9b25caf4
More testing for explicit specializations of member class templates
...
llvm-svn: 83548
2009-10-08 15:27:05 +00:00
Douglas Gregor
bbe8f46621
Improve checking for specializations of member classes of class
...
templates, and keep track of how those member classes were
instantiated or specialized.
Make sure that we don't try to instantiate an explicitly-specialized
member class of a class template, when that explicit specialization
was a declaration rather than a definition.
llvm-svn: 83547
2009-10-08 15:14:33 +00:00
Douglas Gregor
86d142a801
For instantiations of static data members of class templates, keep
...
track of the kind of specialization or instantiation. Also, check the
scope of the specialization and ensure that a specialization
declaration without an initializer is not a definition.
llvm-svn: 83533
2009-10-08 07:24:58 +00:00
Douglas Gregor
c093c1de2b
Make sure to set the template specialization kind of an explicit
...
template instantiation of a member function of a class template.
FIXME -= 2;
llvm-svn: 83520
2009-10-08 01:19:17 +00:00
Douglas Gregor
f43472bd84
Compress storage for MemberSpecializationInfo into a single
...
pointer. Yay, PointerIntPair.
llvm-svn: 83512
2009-10-08 00:19:07 +00:00
Douglas Gregor
e3dfd4826b
Only perform an implicit instantiation of a function if its template
...
specialization kind is TSK_ImplicitInstantiation. Previously, we would
end up implicitly instantiating functions that had explicit
specialization declarations or explicit instantiation declarations
(with no corresponding definitions).
llvm-svn: 83511
2009-10-08 00:14:38 +00:00
Douglas Gregor
d801b06232
Keep track of whether a member function instantiated from a member
...
function of a class template was implicitly instantiated, explicitly
instantiated (declaration or definition), or explicitly
specialized. The same MemberSpecializationInfo structure will be used
for static data members and member classes as well.
llvm-svn: 83509
2009-10-07 23:56:10 +00:00
John McCall
c3987485f2
Refactoring around friend class templates. Better error message for friend enums.
...
Don't create a new declaration for friend classes if a declaration already exists.
llvm-svn: 83505
2009-10-07 23:34:25 +00:00
Douglas Gregor
5c0405d484
Type checking for specializations of member functions of class
...
templates. Previously, these weren't handled as specializations at
all. The AST for representing these as specializations is still a work
in progress.
llvm-svn: 83498
2009-10-07 22:35:40 +00:00
Anders Carlsson
6c966c458a
Handle MemberExprs in ResolveAddressOfOverloadedFunction.
...
llvm-svn: 83495
2009-10-07 22:26:29 +00:00
John McCall
fe8dc76f80
Dead code elimination.
...
llvm-svn: 83492
2009-10-07 22:04:40 +00:00
Fariborz Jahanian
3ee21f1b91
Fixes problem in finding visible convertion functions of a class
...
where matching conversion types in base classes were still visible.
Plus refactoring and cleanup.
Added a test case.
llvm-svn: 83485
2009-10-07 20:43:36 +00:00
Douglas Gregor
40fb74484e
Diagnose explicit instantiations and specializations that occur in class scope
...
llvm-svn: 83473
2009-10-07 17:30:37 +00:00
Fariborz Jahanian
ae01f78a31
When building candidate set for built-ins; when looking for
...
convesion functions, look in base classes to.
(Removes a FIXME).
llvm-svn: 83472
2009-10-07 17:26:09 +00:00
Douglas Gregor
e4b05168f6
Class template partial specializations can be declared anywhere that
...
its definition may be defined, including in a class.
Also, put in an assertion when trying to instantiate a class template
partial specialization of a member template, which is not yet
implemented.
llvm-svn: 83469
2009-10-07 17:21:34 +00:00
Fariborz Jahanian
12df37c5d7
Removed couple of unnecessary canonicalization
...
per Doug's obsevation.
llvm-svn: 83464
2009-10-07 16:56:50 +00:00
Ted Kremenek
8c6066d021
Add 'template' keyword to disambiguate the use of a member template within a templated class. Hopefully this will please the buildbots.
...
llvm-svn: 83452
2009-10-07 06:20:14 +00:00
Ted Kremenek
7881ac97a5
Revert r83443.
...
llvm-svn: 83451
2009-10-07 03:21:11 +00:00
Anders Carlsson
1e39bd944b
Mangle anonymous structs/unions correctly. Fixes PR5139.
...
llvm-svn: 83448
2009-10-07 01:45:02 +00:00
Mike Stump
db9fca7735
Fixup pathnames.
...
llvm-svn: 83443
2009-10-07 01:11:54 +00:00
Anders Carlsson
ff971e8bf4
Add a MangleContext and pass it to all mangle functions. It will be used for keeping state, such as identifiers assigned to anonymous structs as well as scope encoding.
...
llvm-svn: 83442
2009-10-07 01:06:45 +00:00
Douglas Gregor
fbe6d079e2
More testing of explicit specializations
...
llvm-svn: 83440
2009-10-07 00:45:53 +00:00
Ted Kremenek
c3661decc3
Change ExplodedNode to have its NodeGroups all BumpPtrAllocated, avoiding malloc() traffic when adding successors/predecessors to a node. This was done by introducing BumpVector, which is essentially SmallVector with all memory being BumpPtrAllocated (this can certainly be cleaned up or moved into llvm/ADT).
...
This change yields a 1.8% speed increase when running the analyzer (with -analyzer-store=region) on a small benchmark file.
llvm-svn: 83439
2009-10-07 00:42:52 +00:00
Ted Kremenek
3ea4ab8e79
Force a specific target triple in c-index-api-test.m, making the behavior of the test not be dependent on the host.
...
llvm-svn: 83438
2009-10-07 00:39:48 +00:00
Douglas Gregor
548886518d
Refactor checking of the scope of explicit template specialization
...
declarations and explicit template instantiations, improving
diagnostics and making the code usable for function template
specializations (as well as class template specializations and partial
specializations).
llvm-svn: 83436
2009-10-07 00:13:32 +00:00
Mike Stump
512c5b770f
Fix eof.
...
llvm-svn: 83433
2009-10-06 23:38:59 +00:00
Mike Stump
4992f59699
Fix eof.
...
llvm-svn: 83432
2009-10-06 23:38:31 +00:00
Fariborz Jahanian
34d93dcddd
Patch to implement C++ [over.built]p11 of overload resolution.
...
Doug, please review. There is a FIXME in the test case with a question
which is unrelated to this patch (that is, error is issued
before set of builtins are added to the candidate list).
llvm-svn: 83429
2009-10-06 23:08:05 +00:00
Anders Carlsson
b703fd2216
Uncomment some commented out code.
...
llvm-svn: 83428
2009-10-06 23:02:00 +00:00
Mike Stump
da6822f584
Add codegen for __builtin_abort. Convert to FileCheck.
...
llvm-svn: 83427
2009-10-06 22:58:45 +00:00
Anders Carlsson
c6d171ec77
Change GetAddressCXXOfBaseClass to use CXXBasePaths for calculating base class offsets. Fix the code to handle virtual bases as well.
...
llvm-svn: 83426
2009-10-06 22:43:30 +00:00
Anders Carlsson
ceca18404c
Add files to xcode project.
...
llvm-svn: 83423
2009-10-06 22:07:00 +00:00
Anders Carlsson
11d00cf972
When mangling names, always use the canonical decl. Fixes PR5144.
...
llvm-svn: 83420
2009-10-06 21:58:01 +00:00
Devang Patel
542ab5f551
InsertSubprogramStart if ATTACH_DEBUG_INFO_TO_AN_INSN is not defined.
...
llvm-svn: 83419
2009-10-06 21:53:41 +00:00
Douglas Gregor
27c26e9a09
Test explicit specialization for all of the various cases where
...
explicit specializations can occur. Also, fix a minor recovery bug
where we should allow declarations coming from the parser to be NULL.
llvm-svn: 83416
2009-10-06 21:27:51 +00:00
Mike Stump
23491449d6
Add more of __builtin_abort, WIP, still missing codegen.
...
llvm-svn: 83410
2009-10-06 20:30:09 +00:00
Ted Kremenek
9ece95150e
Updated checker build.
...
llvm-svn: 83408
2009-10-06 20:19:01 +00:00
Devang Patel
5d90d62701
Add support to attach debug info to an instruction.
...
This is not yet enabled.
llvm-svn: 83399
2009-10-06 18:36:08 +00:00
Anders Carlsson
273cdf096c
Fix test.
...
llvm-svn: 83398
2009-10-06 18:12:12 +00:00
Anders Carlsson
6b7378bbe1
Emit the destructor epilogue in a cleanup block so a return from a destructor body still calls the epilogue.
...
llvm-svn: 83397
2009-10-06 18:09:57 +00:00
Douglas Gregor
36d1b14dde
Refactor the code that walks a C++ inheritance hierarchy, searching
...
for bases, members, overridden virtual methods, etc. The operations
isDerivedFrom and lookupInBases are now provided by CXXRecordDecl,
rather than by Sema, so that CodeGen and other clients can use them
directly.
llvm-svn: 83396
2009-10-06 17:59:45 +00:00
Anders Carlsson
80ef6f1a46
Pass the right type to GetAddrOfFunction when getting functions for the VTable. Fixes PR5021.
...
llvm-svn: 83395
2009-10-06 17:54:23 +00:00
Rafael Espindola
7787d79c7b
Add the -nostdclanginc option to clang (the driver).
...
llvm-svn: 83377
2009-10-06 12:45:37 +00:00
Ted Kremenek
d5cf21a57b
Fix 'clang-cc -analyzer-display-progress' by flushing standard error after printing the name of the analyzed function.
...
llvm-svn: 83369
2009-10-06 03:49:25 +00:00
Ted Kremenek
2f935535b1
Fix crash introduced by r83358 where a symbol could be eagerly
...
evaluated to an APSInt with a different bitwidth than the other
operand in a binary expression.
llvm-svn: 83368
2009-10-06 03:44:49 +00:00
Ted Kremenek
8ec5771dcb
Fix: <rdar://problem/7275774> Static analyzer warns about NULL pointer when
...
adding assert
This fix required a few changes:
SimpleSValuator:
- Eagerly replace a symbolic value with its constant value in EvalBinOpNN
when it is constrained to a constant. This allows us to better constant fold
values along a path.
- Handle trivial case of '<', '>' comparison of pointers when the two pointers
are exactly the same.
RegionStoreManager:
llvm-svn: 83358
2009-10-06 01:39:48 +00:00
Rafael Espindola
c3031a9643
Refactor the c++ include path a bit.
...
llvm-svn: 83357
2009-10-06 01:33:02 +00:00
Devang Patel
faf7e9ad24
Set appropriate context for a global variable while emitting debug info.
...
llvm-svn: 83352
2009-10-06 00:35:31 +00:00
Fariborz Jahanian
333bb733a5
Refixed pr5086 by letting Expr::isNullPointerConstant
...
handle checking for a null pointer for a zero-valued
enumerator; moving the test case from CodeGen to Sema.
llvm-svn: 83350
2009-10-06 00:09:31 +00:00
Mike Stump
4348c565ad
This is slightly contentious, but, if llvm has gone to addressable
...
units, we should as well. The problem is the non-predictability of
the dimension of the values. I'd love for the dimension to be part of
the static type system... but in C++ it is kinda annoying to do.
llvm-svn: 83345
2009-10-05 23:40:59 +00:00
Mike Stump
916c006735
Fix thinko and simplify.
...
llvm-svn: 83342
2009-10-05 23:08:21 +00:00
Mike Stump
3472ae5bac
Ensure we have atleast 2-byte alignment for member functions.
...
llvm-svn: 83337
2009-10-05 22:49:20 +00:00
Douglas Gregor
084a654334
Make sure that c-index-test links as a C++ executable
...
llvm-svn: 83335
2009-10-05 22:29:42 +00:00
Douglas Gregor
629f4811a0
Make sure that libCIndex links as a C++ library
...
llvm-svn: 83331
2009-10-05 22:25:29 +00:00
Mike Stump
f6ab1f0a4d
Testcase for recent checkin.
...
llvm-svn: 83330
2009-10-05 22:24:47 +00:00
Mike Stump
c5e153c50e
Respect alignments better.
...
llvm-svn: 83328
2009-10-05 21:58:44 +00:00
Eric Christopher
c2ac4f020b
Fix C90 compile warning about mixed declarations and code.
...
llvm-svn: 83327
2009-10-05 21:33:42 +00:00
Fariborz Jahanian
8764c74784
tweaked my last patch to 1) preserve the protocol in
...
extension class's protocol list so its AST is complete.
2) Because of this no need to issue warning on unimplemeted
methods coming from the extended class protocols
because warning is issued when class definition is seen.
llvm-svn: 83326
2009-10-05 21:32:49 +00:00
Chris Lattner
78a2e6356b
remove this test, grepping for define isn't really testing anything.
...
llvm-svn: 83325
2009-10-05 21:16:22 +00:00
Douglas Gregor
d54f3a1e58
Encode the Clang branch and Subversion revision into a PCH file, and
...
assume that PCH files from different Clang revisions are not
compatible. Addresses <rdar://problem/7266572>.
llvm-svn: 83323
2009-10-05 21:07:28 +00:00
Fariborz Jahanian
092cd6e624
Patch to implement Protocols on class extensions.
...
<rdar://problem/7269631> Protocols on class extensions don't work
llvm-svn: 83322
2009-10-05 20:41:32 +00:00
Douglas Gregor
1b7035da6f
Provide a common set of routines in Version.h that return Subversion
...
branch/revision information. Use that information in the driver,
rather than one-off branch/revision computation.
llvm-svn: 83321
2009-10-05 20:33:49 +00:00
Douglas Gregor
7550a6c186
Pre-commit commit to get URL keyword expansion for Clang version information
...
llvm-svn: 83319
2009-10-05 18:52:24 +00:00
Steve Naroff
d7eb7179a2
- Fix assert in clang_getCursorDecl (having to do with recently added ObjC_ProtocolRef).
...
- Make sure CHECK: lines in test case match the expected output.
llvm-svn: 83316
2009-10-05 17:58:19 +00:00
Benjamin Kramer
dde0fee82e
Use new predicates for some type equality tests.
...
llvm-svn: 83303
2009-10-05 13:47:21 +00:00
Rafael Espindola
e7178953f9
Add a -nostdclanginc flag to clang-cc that prevents it from searching
...
its own binary-relative headers. Useful when using clang's preprocessor
with gcc.
llvm-svn: 83302
2009-10-05 13:12:17 +00:00
Anders Carlsson
d5931cd2b7
Pass the canonical method decl to GetVtableIndex. Fixes PR5120.
...
llvm-svn: 83272
2009-10-03 19:56:56 +00:00
Anders Carlsson
2ee3c011d9
Implement code generation of member function pointer calls. Fixes PR5121.
...
llvm-svn: 83271
2009-10-03 19:43:08 +00:00
Anders Carlsson
61914b512a
Create CXXMemberCallExpr for pointer-to-member calls.
...
llvm-svn: 83268
2009-10-03 17:40:22 +00:00
Anders Carlsson
de55f647ff
Ignore No-op casts when evaluating lvalue expressions. Fixes PR5122.
...
llvm-svn: 83267
2009-10-03 16:30:22 +00:00
Anders Carlsson
c46bf276e1
Teach AggExprEmitter about pointers to member functions.
...
llvm-svn: 83266
2009-10-03 15:43:24 +00:00
Anders Carlsson
3162e4945a
Handle base-to-derived casts of member function pointers in CGExprConstant.cpp
...
llvm-svn: 83265
2009-10-03 15:13:22 +00:00
Anders Carlsson
128a5d5147
Handle members to function pointers in CGExprConstant.
...
llvm-svn: 83264
2009-10-03 15:02:02 +00:00
Anders Carlsson
32bfb1ce8f
Move some functions from CodeGenFunctions to CodeGenModule so they can be used by CGExprConstant.
...
llvm-svn: 83263
2009-10-03 14:56:57 +00:00
Anders Carlsson
6ad01742d5
Rewrite member function pointer test not to rely on -O2.
...
llvm-svn: 83262
2009-10-03 14:39:13 +00:00
Benjamin Kramer
d8e06611eb
Fix typo.
...
llvm-svn: 83246
2009-10-02 12:19:16 +00:00
Benjamin Kramer
80401b96c2
FileCheckize test case.
...
llvm-svn: 83244
2009-10-02 10:32:51 +00:00
Anders Carlsson
8a744ad8a6
Don't update the struct alignment when adding fields to a packed struct. Fixes PR5118.
...
llvm-svn: 83235
2009-10-02 04:52:12 +00:00
Mike Stump
581b9ad124
More magic pixie dust.
...
llvm-svn: 83232
2009-10-02 02:30:50 +00:00
Mike Stump
440af3d903
Fix up debug information for block pointers a bit more.
...
llvm-svn: 83231
2009-10-02 02:23:37 +00:00
Anders Carlsson
39e3eb12ae
When building constant structs, check if the resulting LLVM struct will be bigger than the record layout size and use a packed struct if that's the case. Fixes PR5108.
...
llvm-svn: 83230
2009-10-02 02:15:20 +00:00
Douglas Gregor
f343fd8929
Make sure to free the explicit template arguments provided for an
...
explicit instantiation. Also, tighten up reference-count checking to
help catch these issues earlier. Fixes PR5069.
llvm-svn: 83225
2009-10-01 23:51:25 +00:00
Steve Naroff
bb69c94798
- Remove Sema::FindMethodInNestedImplementations().
...
- Add ObjCInterfaceDecl::lookupPrivateInstanceMethod().
- Convert clients.
No functionality change - One less method in Sema:-)
llvm-svn: 83224
2009-10-01 23:46:04 +00:00
Douglas Gregor
78b691a458
When the return type of a function is dependent, don't perform any
...
of the flow-control checks for falling off the end of a function,
since the return type may instantiate to void. Similarly, if a
return statement has an expression and the return type of the function
is void, don't complain if the expression is type-dependent, since
that type could instantiate to void.
Fixes PR5071.
llvm-svn: 83222
2009-10-01 23:25:31 +00:00
Mike Stump
017460ab6c
Implement a FIXME. This improves codegen just a tad.
...
llvm-svn: 83221
2009-10-01 22:29:41 +00:00
Fariborz Jahanian
a0f91ad59c
enumerator value of 0 is not a null pointer constant for
...
deciding const of null pointer conversion. Fixes PR5086.
llvm-svn: 83217
2009-10-01 22:10:15 +00:00
Douglas Gregor
369acf9304
CodeGen may see out-of-line declarations of the various special member
...
functions when they are explicitly declared, e.g., via a function
template specialization or explicit template instantiation
declaration. Don't try to synthesize bodies for the special member
functions in this case; rather, check whether we have an implicit
declaration and, if so, synthesize the appropriate function
body. Fixes PR5084.
llvm-svn: 83212
2009-10-01 20:44:19 +00:00
Fariborz Jahanian
b3c44f9ee9
Patch to implement static casting which requires one
...
user-defined type conversion. Fixes PR5040.
llvm-svn: 83211
2009-10-01 20:39:51 +00:00
Fariborz Jahanian
e4b21aba44
Set __EXCEPTIONS by checking on darwin's triple.
...
Patch by Rafael Espindola.
llvm-svn: 83209
2009-10-01 20:30:46 +00:00
Ted Kremenek
5c22e110a1
Fix bad grammar in static analyzer diagnostic. Reported by Robert Purves!
...
llvm-svn: 83204
2009-10-01 17:31:50 +00:00
Rafael Espindola
00a665751d
Move the "needs exception support" logic to clang. This also fixes
...
-fno-exceptions in C++ code. We used to always define __EXCEPTIONS in
C++.
llvm-svn: 83199
2009-10-01 13:33:33 +00:00
Douglas Gregor
e364e7bc2b
Fix a lame regression in IR gen for C++ delete expressions. PR5102
...
llvm-svn: 83195
2009-10-01 05:49:51 +00:00
Steve Naroff
a6c56bb849
Add support for class and protocol references.
...
llvm-svn: 83186
2009-10-01 00:31:07 +00:00
Mike Stump
7d69911a1f
A couple of refinements for laying out debug information for
...
BlockDeclRefDecls.
llvm-svn: 83185
2009-10-01 00:27:30 +00:00
John McCall
4fa5342758
Anonymous namespaces, sema + codegen. A lot of semantics are still broken,
...
apparently because using directives aren't quite working correctly.
llvm-svn: 83184
2009-10-01 00:25:31 +00:00
Douglas Gregor
42909754f6
Improve template argument deduction in the case where the parameter
...
type is a template-id (e.g., basic_ostream<CharT, Traits>) and the
argument type is a class that has a derived class matching the
parameter type. Previously, we were giving up on template argument
deduction too early.
llvm-svn: 83177
2009-09-30 22:13:51 +00:00
Douglas Gregor
66950a32d9
When overload resolution fails for an overloaded operator, show the
...
overload candidates (but not the built-in ones). We still rely on the
underlying built-in semantic analysis to produce the initial
diagnostic, then print the candidates following that diagnostic.
One side advantage of this approach is that we can perform more validation
of C++'s operator overloading with built-in candidates vs. the
semantic analysis for those built-in operators: when there are no
viable candidates, we know to expect an error from the built-in
operator handling code. Otherwise, we are not modeling the built-in
semantics properly within operator overloading. This is checked as:
assert(Result.isInvalid() &&
"C++ binary operator overloading is missing
candidates!");
if (Result.isInvalid())
PrintOverloadCandidates(CandidateSet, /*OnlyViable=*/false);
The assert() catches cases where we're wrong in a +Asserts build. The
"if" makes sure that, if this happens in a production clang
(-Asserts), we still build the proper built-in operator and continue
on our merry way. This is effectively what happened before this
change, but we've added the assert() to catch more flies.
llvm-svn: 83175
2009-09-30 21:46:01 +00:00
Douglas Gregor
3dc959f88b
Tweak CHECK lines to eliminate a failure on i686-apple-darwin10
...
llvm-svn: 83173
2009-09-30 21:39:51 +00:00
Fariborz Jahanian
db82308633
Issue good diagnostics when initializing a refernce type with
...
a bad initializer. Fixes pr4274.
llvm-svn: 83169
2009-09-30 21:23:30 +00:00
Tanya Lattner
fd2dcba7f3
Add an error for function parameters that have a qualified address space since this is not allowed by the embedded c extension spec.
...
llvm-svn: 83165
2009-09-30 20:47:43 +00:00
Chris Lattner
b355495660
fix line #'s
...
llvm-svn: 83162
2009-09-30 20:20:06 +00:00
Chris Lattner
859f1b5b86
add some more popular examples, color code warning: and error: like the command line.
...
llvm-svn: 83161
2009-09-30 20:19:10 +00:00
Chris Lattner
24440102aa
Convert from nonportable grep to filecheck, patch by John Thompson
...
llvm-svn: 83158
2009-09-30 19:55:07 +00:00
Douglas Gregor
49663d2a23
Update C++ status page
...
llvm-svn: 83157
2009-09-30 18:32:57 +00:00
Fariborz Jahanian
ac3005cecc
Note location of operators caused the circularity.
...
llvm-svn: 83153
2009-09-30 17:46:20 +00:00
Fariborz Jahanian
e01e434aef
<rdar://problem/7263113> Make clang produce gcc's objc_assign_StrongCast as a result of type-cast of an ivar in assignment.
...
llvm-svn: 83150
2009-09-30 17:10:29 +00:00
Chris Lattner
e0527b2de1
update copyright.
...
llvm-svn: 83149
2009-09-30 15:59:45 +00:00
Mike Stump
2e722b915c
Improve debugging information for BlockDeclRefExpr. WIP. Given this
...
scheme, we can switch the previous scheme over to using this code
path. There's a bit of simplifications yet to do as well.
llvm-svn: 83138
2009-09-30 02:43:10 +00:00
John McCall
bd0465bbd2
Spare the processors of those poor wretches who have no choice but to write
...
unbounded chains of operator-> delegations.
llvm-svn: 83134
2009-09-30 01:30:54 +00:00
John McCall
c1538c08d7
Detect operator-> chains of arbitrary length. Use a terrible data structure
...
to strike fear into the hearts of CPUs everywhere.
llvm-svn: 83133
2009-09-30 01:01:30 +00:00
Fariborz Jahanian
10ce958550
self-referecing operator '->' member function was causing
...
infinit recursion. This patch fixes it. [13.3.1.2]-p2
llvm-svn: 83124
2009-09-30 00:19:41 +00:00
Douglas Gregor
80a6cc5800
Find operators new/delete in base classes. FIXME -= 2;
...
llvm-svn: 83119
2009-09-30 00:03:47 +00:00
John McCall
a192536ebe
Desugaring optimizations. Add single-step desugaring methods to all
...
concrete types. Use unqualified desugaring for getAs<> and sundry.
Fix a few users to either not desugar or use qualified desugar, as seemed
appropriate. Removed Type's qualified desugar method, as it was easy
to accidentally use instead of QualType's.
llvm-svn: 83116
2009-09-29 23:03:30 +00:00
Douglas Gregor
98496dc3eb
The C++ delete expression strips cv-qualifiers from the pointed-to type. My previous fix eliminated this behavior, so bring it back again.
...
llvm-svn: 83113
2009-09-29 21:38:53 +00:00
Argyrios Kyrtzidis
8da9ce6328
Pull TypeLocVisitor into its own header file.
...
llvm-svn: 83112
2009-09-29 21:27:32 +00:00
Argyrios Kyrtzidis
4361bc1b43
Keep track of type references in DeclReferenceMap.
...
llvm-svn: 83111
2009-09-29 21:26:53 +00:00
Argyrios Kyrtzidis
9c28a3d13c
In ASTVisitor, call the correct base methods.
...
llvm-svn: 83110
2009-09-29 21:26:35 +00:00
Argyrios Kyrtzidis
edd1129c36
Fix Decl class hierarchy.
...
llvm-svn: 83109
2009-09-29 21:26:14 +00:00
Fariborz Jahanian
3a36ab08b7
13.1-p3 Overloadable declarations
...
Parameter declarations that differ only in the presence or absence of const and/or volatile are equivalent.
llvm-svn: 83104
2009-09-29 20:28:06 +00:00
Argyrios Kyrtzidis
f881301d3a
Resolve a source location inside the return type of a functon.
...
llvm-svn: 83101
2009-09-29 19:58:16 +00:00
Argyrios Kyrtzidis
419e38bbe2
When pointing at a type decl reference, ASTLocation is a NamedDeclRef.
...
llvm-svn: 83099
2009-09-29 19:45:58 +00:00
Argyrios Kyrtzidis
05677cae08
Resolve a source location that is inside a type declarator.
...
llvm-svn: 83098
2009-09-29 19:45:41 +00:00
Argyrios Kyrtzidis
0643e333a3
Introduce ObjCInterfaceLoc which provides type source information for ObjC interfaces.
...
llvm-svn: 83097
2009-09-29 19:45:22 +00:00
Argyrios Kyrtzidis
d4bcfaf351
Introduce TypedefLoc::getTypedefDecl().
...
llvm-svn: 83096
2009-09-29 19:44:47 +00:00
Argyrios Kyrtzidis
4cbe85904c
Modify ASTLocation and apart from being a Decl or Stmt, allow it to also be:
...
-A NamedDecl reference
-A TypeLoc
llvm-svn: 83095
2009-09-29 19:44:27 +00:00
Argyrios Kyrtzidis
73360e1bbb
Introduce ObjCProtocolListLoc for keeping source location information for protocol references.
...
llvm-svn: 83094
2009-09-29 19:43:35 +00:00
Argyrios Kyrtzidis
a7a36dfdb6
Introduce ObjCProtocolListType type subclass.
...
This is used only for keeping detailed type source information for protocol references,
it should not participate in the semantics of the type system.
Its protocol list is not canonicalized.
llvm-svn: 83093
2009-09-29 19:42:55 +00:00
Argyrios Kyrtzidis
5ec645b494
Move DeclSpec::setProtocolQualifiers() out of line.
...
llvm-svn: 83092
2009-09-29 19:42:11 +00:00
Argyrios Kyrtzidis
fc1f9e4945
Keep protocol source locations when parsing protocol references.
...
llvm-svn: 83091
2009-09-29 19:41:44 +00:00
Argyrios Kyrtzidis
1632b142b6
Introduce Type::getTypeClassName() that returns the string associated with the TypeClass enum.
...
llvm-svn: 83090
2009-09-29 19:41:13 +00:00
Argyrios Kyrtzidis
402e1dcf6f
Introduce TypeLoc::getSourceRange().
...
llvm-svn: 83089
2009-09-29 19:40:46 +00:00
Argyrios Kyrtzidis
1b7c4ca37d
-Introduce TypeLoc::getOpaqueData()
...
-Make TypeLoc's constructor public.
llvm-svn: 83088
2009-09-29 19:40:20 +00:00
Argyrios Kyrtzidis
81aba1fe53
Add more const-goodness to ASTLocation.
...
llvm-svn: 83087
2009-09-29 19:39:53 +00:00
Daniel Dunbar
d71a03b164
Fix truck sized thinko where Darwin/ARM toolchain didn't look for programs in
...
libexec, *blush*.
llvm-svn: 83086
2009-09-29 18:52:10 +00:00
Daniel Dunbar
88f2300d19
Add a test case demonstrating a situation where we get protocol type checking
...
right for multiple anonymous categories.
llvm-svn: 83085
2009-09-29 18:51:43 +00:00
Douglas Gregor
bb3e12fc0b
Handle C++ delete expressions when the overloaded delete operator is a
...
"usual deallocation function" with two arguments. CodeGen will have to
handle this case specifically, since the value for the second argument
(the size of the allocated object) may have to be computed at run
time.
Fixes the Sema part of PR4782.
llvm-svn: 83080
2009-09-29 18:16:17 +00:00
Fariborz Jahanian
91ae9fd9e8
Fixes a nasty bug which only turned up in 32bit build of clang and
...
had to do with an initialized field when multiple type conversions
are ambiguous but must be treated as user defined conversion for
overload resolution purposes.
llvm-svn: 83079
2009-09-29 17:31:54 +00:00
Ted Kremenek
73583083f7
Update checker build.
...
llvm-svn: 83074
2009-09-29 17:08:03 +00:00
Ted Kremenek
228539f015
Fix: <rdar://problem/7261075> [RegionStore] crash when handling load: '*((unsigned int *)"????")'
...
This issue was originally reported via personal email by Thomas Clement!
llvm-svn: 83069
2009-09-29 16:36:48 +00:00
Douglas Gregor
78f0fa518c
Make sure to flush raw_string_ostream, from John Thompson
...
llvm-svn: 83066
2009-09-29 15:13:39 +00:00
Douglas Gregor
6b603c9ec5
Allow the PYTHON make variable to override the default Python when running Clang tests, from Ken Dyck.
...
llvm-svn: 83065
2009-09-29 14:54:28 +00:00
Douglas Gregor
63b3556c9c
Set GNUMode only for the "gnu" language standard options, from Ken Dyck!
...
llvm-svn: 83064
2009-09-29 14:42:43 +00:00
Douglas Gregor
a49cb4e494
Slightly improve the semantics of extern templates for member functions of class templates
...
llvm-svn: 83063
2009-09-29 14:38:03 +00:00
Ted Kremenek
cc22424c87
Fix really insidious bug in RegionStoreManager::RemoveDeadBindings()
...
identified with a false positive reported by Thomas Clement. This
involved doing another rewrite of
RegionStoreManager::RemoveDeadBindings(), which phrases the entire
problem of scanning for dead regions as a graph exploration problem.
It is more methodic than the previous implementation.
llvm-svn: 83053
2009-09-29 06:35:00 +00:00
Anders Carlsson
025893300c
Remove PR5061 workaround.
...
llvm-svn: 83046
2009-09-29 05:36:21 +00:00
Anders Carlsson
8f4fd60c47
Handle CXXMemberCallExprs that point to a static method. Fixes PR5093.
...
llvm-svn: 83045
2009-09-29 03:54:11 +00:00
Anders Carlsson
33c6a7a12e
Forgot test.
...
llvm-svn: 83044
2009-09-29 03:38:56 +00:00
Ted Kremenek
5daec8a834
Reapply most of r82939, but add a guard that FieldRegions and friends
...
are only specially treated by RegionStore::InvalidateRegion() when
their super region is also invalidated. When this isn't the case,
conjure a new symbol for a FieldRegion. Thanks to Zhongxing Xu and
Daniel Dunbar for pointing out this issue.
llvm-svn: 83043
2009-09-29 03:34:03 +00:00
Douglas Gregor
4d46522df1
Add an input file that includes all standard C++ headers
...
llvm-svn: 83042
2009-09-29 03:26:11 +00:00
Anders Carlsson
9150a2a8c0
Handle CK_BaseToDerivedMemberPointer for member function pointers. Fixes PR5091.
...
llvm-svn: 83041
2009-09-29 03:13:20 +00:00
Ted Kremenek
1cbdf6e850
Revert r82939. We can only not special case FieldRegions when the super region has also been invalidated.
...
llvm-svn: 83040
2009-09-29 03:12:50 +00:00
Anders Carlsson
b05a3e551b
Improve support for member function pointers.
...
llvm-svn: 83039
2009-09-29 02:09:01 +00:00
Anders Carlsson
1fb7ae9e3c
Use a switch statement in VisitCastExpr.
...
llvm-svn: 83038
2009-09-29 01:23:39 +00:00
Anders Carlsson
d30d820dc4
Make hasAggregateLLVMType use positive checks.
...
llvm-svn: 83037
2009-09-29 01:15:29 +00:00
Mike Stump
e7a2b48572
Fix http://llvm.org/PR5090 .
...
llvm-svn: 83035
2009-09-29 00:50:50 +00:00
Ted Kremenek
196d2a0095
Remove test case's dependency on platform headers.
...
llvm-svn: 83030
2009-09-28 23:54:40 +00:00
Fariborz Jahanian
78cfcb56a1
Define and use a helper method to call a type conversion
...
function.
llvm-svn: 83027
2009-09-28 23:23:40 +00:00
Fariborz Jahanian
9021fc7026
Minor API change. No change in functionality.
...
llvm-svn: 83022
2009-09-28 22:03:07 +00:00