summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* dyn_cast else unreachable -> castJohn McCall2010-12-041-4/+2
| | | | llvm-svn: 120902
* More anonymous struct/union redesign. This one deals with anonymous field ↵Francois Pichet2010-12-0417-141/+152
| | | | | | | | | | | | | | | | used in a constructor initializer list: struct X { X() : au_i1(123) {} union { int au_i1; float au_f1; }; }; clang will now deal with au_i1 explicitly as an IndirectFieldDecl. llvm-svn: 120900
* Don't crash when initializing a subaggregate in C from a property r-value.John McCall2010-12-042-0/+13
| | | | llvm-svn: 120899
* Make IgnoreParenLValueCasts skip __extension__ nodes like IgnoreParens().John McCall2010-12-041-3/+11
| | | | | | Abramo noticed this. llvm-svn: 120898
* Silence "comparison between signed and unsigned integer expressions" warnings.Benjamin Kramer2010-12-042-5/+5
| | | | llvm-svn: 120897
* Remove some defensive calls to EmitLoadOfPropertyRefLValue that shouldn'tJohn McCall2010-12-045-87/+93
| | | | | | | be required, and then fix up some missing loads on overloaded-operator paths which that exposed. llvm-svn: 120896
* When deciding whether to complain about the type of a boolean condition, useJohn McCall2010-12-043-2/+20
| | | | | | the type of the expression *after* array/function decay. llvm-svn: 120895
* Apparently properties.m does not always fail; make it.John McCall2010-12-041-0/+1
| | | | llvm-svn: 120894
* Fix this test case on no-asserts builds by not trying to match the basicJohn McCall2010-12-041-1/+3
| | | | | | block line. llvm-svn: 120893
* Although we currently have explicit lvalue-to-rvalue conversions, they'reJohn McCall2010-12-0430-111/+419
| | | | | | | | | | | | | | | | | | | not actually frequently used, because ImpCastExprToType only creates a node if the types differ. So explicitly create an ICE in the lvalue-to-rvalue conversion code in DefaultFunctionArrayLvalueConversion() as well as several other new places, and consistently deal with the consequences throughout the compiler. In addition, introduce a new cast kind for loading an ObjCProperty l-value, and make sure we emit those nodes whenever an ObjCProperty l-value appears that's not on the LHS of an assignment operator. This breaks a couple of rewriter tests, which I've x-failed until future development occurs on the rewriter. Ted Kremenek kindly contributed the analyzer workarounds in this patch. llvm-svn: 120890
* Test case for the l-value base only being evaluated once.John McCall2010-12-044-65/+71
| | | | | | | | | | Also, move the l-value emission code into CGObjC.cpp and teach it, for completeness, to store away self for a super send. Also, inline the super cases for property gets and sets and make them use the correct result type for implicit getter/setter calls. llvm-svn: 120887
* Kill the KVC l-value kind and calculate the base expression when emittingJohn McCall2010-12-048-140/+62
| | | | | | the l-value. llvm-svn: 120884
* Implement -cl-std=Peter Collingbourne2010-12-042-0/+9
| | | | llvm-svn: 120882
* Implement -cl-mad-enablePeter Collingbourne2010-12-044-0/+7
| | | | llvm-svn: 120881
* Implement -cl-fast-relaxed-mathPeter Collingbourne2010-12-044-2/+13
| | | | llvm-svn: 120880
* Implement -cl-unsafe-math-optimizationsPeter Collingbourne2010-12-044-0/+6
| | | | llvm-svn: 120879
* Implement -cl-finite-math-onlyPeter Collingbourne2010-12-044-0/+9
| | | | llvm-svn: 120878
* Implement -cl-single-precision-constantPeter Collingbourne2010-12-045-0/+17
| | | | llvm-svn: 120877
* Implement -cl-opt-disablePeter Collingbourne2010-12-043-4/+15
| | | | llvm-svn: 120876
* Refactor optimisation level codePeter Collingbourne2010-12-041-14/+16
| | | | llvm-svn: 120875
* Introduce CompilerInvocation::setLangDefaults functionPeter Collingbourne2010-12-042-23/+53
| | | | | | | | | | | This patch refactors the CompilerInvocation code to introduce a CompilerInvocation::setLangDefaults function, which can set up a LangOptions with the defaults for a given language and language standard. This function is useful for non-command line based Clang clients which need to set up a CompilerInvocation manually for a specific language. llvm-svn: 120874
* Minor refactoring; have BugReport::getRanges return a pair of iterator, no ↵Argyrios Kyrtzidis2010-12-043-27/+20
| | | | | | functionality change. llvm-svn: 120873
* Mark functions referenced by 'cleanup' attribute as used. Fixes rdar://8728293Argyrios Kyrtzidis2010-12-042-0/+8
| | | | llvm-svn: 120872
* Diagnose when accessing property in a class method andFariborz Jahanian2010-12-035-9/+32
| | | | | | | no property accessor class method to be found, instead of crashing in IRGen. // rdar://8703553 llvm-svn: 120855
* Fixed typo.Abramo Bagnara2010-12-031-1/+1
| | | | llvm-svn: 120839
* Added struct/class syntactic info for c++0x scoped enum.Abramo Bagnara2010-12-0312-22/+47
| | | | llvm-svn: 120828
* Add missing vext_f32 and vextq_f32 Neon intrinsics (Radar 8592601).Bob Wilson2010-12-031-1/+2
| | | | | | | For some reason these were not included in the list of Neon intrinsics in ARM's documentation, so they didn't make it into Clang either. llvm-svn: 120815
* Add support for vmul_p8 Neon intrinsic. Radar 8446141.Bob Wilson2010-12-032-1/+6
| | | | llvm-svn: 120812
* Implement caching for the linkage and visibility calculations ofDouglas Gregor2010-12-038-41/+200
| | | | | | | | | | | | | | | | | | | | | | | | | declarations. The motivation for this patch is that linkage/visibility computations are linear in the number of redeclarations of an entity, and we've run into a case where a single translation unit has > 6500 redeclarations of the same (unused!) external variable. Since each redeclaration involves a linkage check, the resulting quadratic behavior makes Clang slow to a crawl. With this change, a simple test with 512 redeclarations of a variable syntax-checks ~20x faster than before. That said, I hate this change, and will probably end up reverting it in a few hours. Reasons to hate it: - It makes NamedDecl larger, since we don't have enough free bits in Decl to squeeze in the extra information about caching. - There are way too many places where we need to invalidate this cache, because the visibility of a declaration can change due to redeclarations (!). Despite self-hosting and passing the testsuite, I have no confidence that I've found all of places where this cache needs to be invalidated. llvm-svn: 120808
* Add a separate name field to the Neon intrinsic table.Bob Wilson2010-12-031-167/+182
| | | | | | | | | This is currently the same as a lowercase version of the record name, but it will allow us to have multiple records with the same name, which is needed for intrinsics (e.g., vmul and vmull) that are implemented differently depending on the type. llvm-svn: 120807
* Add a separate rightShift flag instead of reusing the existing "poly" variableBob Wilson2010-12-031-2/+3
| | | | | | to distinguish vsri/vsli. llvm-svn: 120806
* Update analyzer build.Ted Kremenek2010-12-031-1/+1
| | | | llvm-svn: 120802
* Add some warning messages about invalid use of common/nocommon attributes.Eric Christopher2010-12-031-2/+10
| | | | llvm-svn: 120799
* Add test case for r120795.Ted Kremenek2010-12-031-0/+24
| | | | llvm-svn: 120796
* Fix an insidious bug in BugReporter whereTed Kremenek2010-12-032-60/+58
| | | | | | | | | a node in the trimmed graph might not always correctly map back to the original error node. This could cause a crash in some cases when flagging memory leaks. llvm-svn: 120795
* Also include the pointer address of the ExplodedNodeTed Kremenek2010-12-031-3/+2
| | | | | | when generating DOT output for an ExplodedGraph. llvm-svn: 120794
* Also show notes about the taken path in TextPathDiagnostics.Argyrios Kyrtzidis2010-12-031-7/+4
| | | | llvm-svn: 120783
* Remove leftover code and use the text path diagnostic client even without a ↵Argyrios Kyrtzidis2010-12-032-9/+5
| | | | | | | | specified output file since it just uses diagnostic notes. llvm-svn: 120773
* Add a flag to control the "indirection of non-volatile null pointer will beNick Lewycky2010-12-032-1/+2
| | | | | | deleted, not trap" warning. Fixed PR8729. Patch by Elias Pipping! llvm-svn: 120771
* Introduce TextPathDiagnostics, a simple PathDiagnosticClient that outputs as ↵Argyrios Kyrtzidis2010-12-034-0/+86
| | | | | | | | diagnostic notes the sequence of events; useful for testing. llvm-svn: 120770
* Handle any number of SourceRanges inside BugReporter::FlushReport.Argyrios Kyrtzidis2010-12-031-6/+4
| | | | llvm-svn: 120769
* Rename Create[*]DiagnosticClient -> create[*]DiagnosticClient.Argyrios Kyrtzidis2010-12-035-10/+10
| | | | llvm-svn: 120768
* Add support for "_lane" variants of VMUL, VMLA, and VMLS Neon intrinsics.Bob Wilson2010-12-031-2/+6
| | | | llvm-svn: 120765
* Fix diagnostic for reporting bad escape sequence.Ted Kremenek2010-12-032-1/+2
| | | | | | Patch by Paul Curtis! llvm-svn: 120759
* Reflow to a style doug prefers, increasing indentation :-)Chris Lattner2010-12-021-24/+24
| | | | llvm-svn: 120746
* When we're performing an explicit cast of some sort, don't complainDouglas Gregor2010-12-025-14/+14
| | | | | | | | | about deprecated Objective-C pointer conversions. Plus, make sure to actually set an appropriate AssignmentAction when performing an implicit conversion from an InitializationSequence. Fixes regressions in the GCC DejaGNU testsuite. llvm-svn: 120744
* Improve on objc diagnostics. // rdar://8721692Fariborz Jahanian2010-12-022-3/+3
| | | | llvm-svn: 120737
* Merge transparent union types using member's unqualified typePeter Collingbourne2010-12-022-1/+5
| | | | llvm-svn: 120736
* Fix range in printf warnings for invalid conversion specifiers.Ted Kremenek2010-12-022-1/+2
| | | | llvm-svn: 120735
* Merge transparent union types using member's canonical param typePeter Collingbourne2010-12-022-1/+5
| | | | llvm-svn: 120729
OpenPOWER on IntegriCloud