summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR4296: Add parser detection/error recovery for nested functions, from ↵Douglas Gregor2013-04-163-20/+40
| | | | | | Serve Pavlov! llvm-svn: 179603
* Use -emit-llvm for the following tests to stop them from failing for Hexagon:Jyotsna Verma2013-04-163-4/+4
| | | | | | | | CodeGenCXX/vtable-debug-info.cpp Driver/objc++-cpp-output.mm Driver/objc-cpp-output.m llvm-svn: 179602
* Fix handling of atomic shift operations, from Serge Pavlov.Douglas Gregor2013-04-162-12/+59
| | | | llvm-svn: 179600
* Objective-C IRGen. Use llvm::WeakVHFariborz Jahanian2013-04-163-12/+61
| | | | | | | | | | for caching couple of global symbols used for generation of CF/NS string meta-data so they are not released prematuely in certain corner cases. // rdar:// 13598026. Reviewed by John M. llvm-svn: 179599
* Suppress unused warning on static inline function template specializations.Rafael Espindola2013-04-162-1/+25
| | | | | | Patch by Halfdan Ingvarsson! llvm-svn: 179598
* Add support for sparcv9 targets.Jakob Stoklund Olesen2013-04-163-13/+67
| | | | | | | | | | | | The SPARC v8 and SPARC v8 architectures are very similar, so use a base class to share most information between them. Include operating systems with known SPARC v9 ports. Also fix two issues with the SPARC v8 data layout string: SPARC v8 is a big endian target with a 64-bit aligned stack. llvm-svn: 179596
* Basic support for Microsoft property declarations andJohn McCall2013-04-1650-34/+1029
| | | | | | | | references thereto. Patch by Tong Shen! llvm-svn: 179585
* Correctly propagate the storage class to function template instantiations.Rafael Espindola2013-04-162-1/+13
| | | | | | | This fixes pr15753. This is another case of the fuzzy definition of the "as written" storage class of an instantiation. llvm-svn: 179581
* [analyzer] Improve the malloc checker stack hint messageAnna Zaks2013-04-163-231/+459
| | | | llvm-svn: 179580
* [analyzer] Do not crash when processing binary "?:" in C++Anna Zaks2013-04-153-9/+49
| | | | | | | | | | | | | | | | | | | | | | When computing the value of ?: expression, we rely on the last expression in the previous basic block to be the resulting value of the expression. This is not the case for binary "?:" operator (GNU extension) in C++. As the last basic block has the expression for the condition subexpression, which is an R-value, whereas the true subexpression is the L-value. Note the operator evaluation just happens to work in C since the true subexpression is an R-value (like the condition subexpression). CFG is the same in C and C++ case, but the AST nodes are different, which the LValue to Rvalue conversion happening after the BinaryConditionalOperator evaluation. Changed the logic to only use the last expression from the predecessor only if it matches either true or false subexpression. Note, the logic needed fortification anyway: L and R were passed but not even used by the function. Also, change the conjureSymbolVal to correctly compute the type, when the expression is an LG-value. llvm-svn: 179574
* [analyzer] Add pretty printing to CXXBaseObjectRegion.Anna Zaks2013-04-153-1/+127
| | | | llvm-svn: 179573
* [analyzer] Address code review for r179395Anna Zaks2013-04-153-19/+158
| | | | | | Mostly refactoring + handle the nested fields by printing the innermost field only. llvm-svn: 179572
* [analyzer] Add more specialized error messages for corner cases as per ↵Anna Zaks2013-04-152-14/+28
| | | | | | Jordan's code review for r179396 llvm-svn: 179571
* Break after multiline parameters.Daniel Jasper2013-04-152-1/+9
| | | | | | | | | | | | | | | | | We do this in general, but missed a few cases. Before: void aaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbb bbbb); After: void aaaaaaaaaaaaaaaaaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, bbbb bbbb); llvm-svn: 179570
* [analyzer] Don't assert on a temporary of pointer-to-member type.Jordan Rose2013-04-152-1/+39
| | | | | | | | | | While we don't do anything intelligent with pointers-to-members today, it's perfectly legal to need a temporary of pointer-to-member type to, say, pass by const reference. Tweak an assertion to allow this. PR15742 and PR15747 llvm-svn: 179563
* Remove some dead code that has not been used since 2010.Joey Gouly2013-04-151-11/+0
| | | | llvm-svn: 179558
* [analyzer] Be lazy about struct/array global invalidation too.Jordan Rose2013-04-151-10/+7
| | | | | | | | | | Structs and arrays can take advantage of the single top-level global symbol optimization (described in the previous commit) just as well as scalars. No intended behavioral change. llvm-svn: 179555
* [analyzer] Re-enable using global regions as a symbolic base.Jordan Rose2013-04-154-13/+152
| | | | | | | | | | | | | | | | Now that we're invalidating global regions properly, we want to continue taking advantage of a particular optimization: if all global regions are invalidated together, we can represent the bindings of each region with a "derived region value" symbol. Essentially, this lazily links each global region with a single symbol created at invalidation time, rather than binding each region with a new symbolic value. We used to do this, but haven't been for a while; the previous commit re-enabled this code path, and this handles the fallout. <rdar://problem/13464044> llvm-svn: 179554
* [analyzer] Properly invalidate global regions on opaque function calls.Jordan Rose2013-04-152-28/+77
| | | | | | | | | | | | | | | | | | | | This fixes a regression where a call to a function we can't reason about would not actually invalidate global regions that had explicit bindings. void test_that_now_works() { globalInt = 42; clang_analyzer_eval(globalInt == 42); // expected-warning{{TRUE}} invalidateGlobals(); clang_analyzer_eval(globalInt == 42); // expected-warning{{UNKNOWN}} } This has probably been around since the initial "cluster" refactoring of RegionStore, if not longer. <rdar://problem/13464044> llvm-svn: 179553
* [analyzer] Tests: move system functions into system header simulator files.Jordan Rose2013-04-153-18/+8
| | | | | | | | | | Some checkers ascribe different behavior to functions declared in system headers, so when working with standard library functions it's probably best to always have them in a standard location. Test change only (no functionality change), but necessary for the next commit. llvm-svn: 179552
* Revert "Speed-up ObjCMethodDecl::getOverriddenMethods()."Argyrios Kyrtzidis2013-04-154-52/+50
| | | | | | | | | | | This reverts commit r179436. Due to caching, it was possible that we could miss overridden methods that were introduced by categories later on. Along with reverting the commit I also included a test case that would have caught this. llvm-svn: 179547
* Remove XFAIL now that the test is standalone.Rafael Espindola2013-04-151-1/+0
| | | | llvm-svn: 179538
* [PCH/test] Make test/PCH/cxx-typeid.cpp self-contained by including the ↵Argyrios Kyrtzidis2013-04-152-4/+45
| | | | | | | | relevant standard library declarations instead of depending on a system header inclusion. llvm-svn: 179537
* Fix unused variable warning with assertions disabled.Alexander Kornienko2013-04-151-3/+4
| | | | llvm-svn: 179531
* Use llvm::sys::IsBigEndianHost.Rafael Espindola2013-04-151-1/+1
| | | | llvm-svn: 179529
* Unified token breaking logic for strings and block comments.Alexander Kornienko2013-04-157-481/+811
| | | | | | | | | | | | | | | | | | | | | | Summary: Both strings and block comments are broken into lines in breakProtrudingToken. Logic specific for strings or block comments is abstracted in implementations of the BreakToken interface. Among other goodness, this change fixes placement of backslashes after a block comment inside a preprocessor directive (see removed FIXMEs in unit tests). The code is far from being polished, and some parts of it will be changed for line comments support. Reviewers: klimek Reviewed By: klimek CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D665 llvm-svn: 179526
* Add a missing spaceTimur Iskhodzhanov2013-04-151-1/+1
| | | | llvm-svn: 179525
* Remove hasExternalLinkageUncached.Rafael Espindola2013-04-155-24/+23
| | | | | | | | It was being used correctly, but it is a very dangerous API to have around. Instead, move the logic from the filtering to when we are deciding if we should link two decls. llvm-svn: 179523
* Fix the storage class of method instantiations.Rafael Espindola2013-04-152-16/+3
| | | | | | | | | We keep the "as written" storage class, but that is a fuzzy concept for instantiations. With this patch instantiations of methods of class templates now get a storage class that is based on the semantics of isStatic(). With this can simplify isStatic() itself. llvm-svn: 179521
* Remove reference to MSVC only building X86 backend.Tim Northover2013-04-151-4/+0
| | | | | | This is no longer true. llvm-svn: 179519
* Local thread_local variables are implicitly 'static'. (This doesn't apply to ↵Richard Smith2013-04-153-7/+37
| | | | | | _Thread_local nor __thread.) llvm-svn: 179517
* Properly check for a constant initializer for a thread-local variable.Richard Smith2013-04-152-1/+4
| | | | llvm-svn: 179516
* Add triple to another test.Richard Smith2013-04-151-1/+1
| | | | llvm-svn: 179515
* Add triples to these tests since they're now using TLS, which isn't ↵Richard Smith2013-04-152-3/+3
| | | | | | available on all targets. llvm-svn: 179514
* Add a new flag -vectorize-slp-aggressive to enable Hals BB vectorizer.Nadav Rotem2013-04-153-0/+17
| | | | llvm-svn: 179507
* Rename the slp-vectorizer clang/llvm flags. No functionality change.Nadav Rotem2013-04-152-3/+3
| | | | llvm-svn: 179506
* Comment command table: use inheritance instead of duplicating codeDmitri Gribenko2013-04-151-4/+2
| | | | llvm-svn: 179501
* CodeGen support for function-local static thread_local variables withRichard Smith2013-04-149-20/+102
| | | | | | | | | non-constant constructors or non-trivial destructors. Plus bugfixes for thread_local references bound to temporaries (the temporaries themselves are lifetime-extended to become thread_local), and the corresponding case for std::initializer_list. llvm-svn: 179496
* Removed #if 0 code that doesn't compiled if uncommented.Rafael Espindola2013-04-141-9/+0
| | | | llvm-svn: 179495
* Diagnose if a __thread or _Thread_local variable has a non-constant initializerRichard Smith2013-04-143-2/+56
| | | | | | or non-trivial destructor. llvm-svn: 179491
* [analyzer] Add a link to the Building a Checker in 24 Hours talk to the ↵Anna Zaks2013-04-141-5/+10
| | | | | | developer manual llvm-svn: 179490
* [Mips] Support -mmicromips / -mno-micromips command line options.Simon Atanasyan2013-04-145-1/+37
| | | | llvm-svn: 179489
* [Mips] Fix indentation.Simon Atanasyan2013-04-141-1/+1
| | | | llvm-svn: 179488
* [Mips] Follow-up to r179481. Reduce code duplication. UseSimon Atanasyan2013-04-141-10/+3
| | | | | | | AddTargetFeature() routine to handle -msingle-float / -mdouble-float options. llvm-svn: 179487
* [Mips] Follow-up to r179481. Consider "single-float" as a separateSimon Atanasyan2013-04-142-6/+14
| | | | | | independent of float ABI feature in the MipsTargetInfoBase class. llvm-svn: 179486
* Add driver support for fedora 18 on ARM.Rafael Espindola2013-04-148-0/+17
| | | | llvm-svn: 179484
* Handle incompatible redeclarations of library builtins better.John McCall2013-04-142-11/+41
| | | | | | | | | Invalid redeclarations of valid explicit declarations shouldn't take the same path as redeclarations of implicit declarations, and invalid local extern declarations shouldn't foul things up for everybody else. llvm-svn: 179482
* [Mips] Remove "single" from the list of valid MIPS float ABI names. AddSimon Atanasyan2013-04-143-9/+30
| | | | | | | | | two new options –msingle-float and –mdouble-float. These options can be used simultaneously with float ABI selection options (-mfloat-abi, -mhard-float, -msoft-float). They mark whether a floating-point coprocessor supports double-precision operations. llvm-svn: 179481
* Simplify test so that it is more portable.Rafael Espindola2013-04-131-5/+3
| | | | | | | I have checked that the test still fails when the "|| !P.isRegularFile()" from the original patch is removed. llvm-svn: 179464
* Remove duplicated comment.Simon Atanasyan2013-04-131-2/+0
| | | | llvm-svn: 179454
OpenPOWER on IntegriCloud