summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* compare.c also needs a target triple now, and improve some comments while we'reJohn McCall2009-11-061-7/+7
| | | | | | at it. llvm-svn: 86243
* Improve the -Wsign-compare heuristics:John McCall2009-11-062-5/+37
| | | | | | | | | | | | | * If the unsigned type is smaller than the signed type, never warn, because its value will not change when zero-extended to the larger type. * If we're testing for (in)equality, and the unsigned value is an integer constant whose sign bit is not set, never warn, because even though the signed value might change, it can't affect the result of the equality. Also make the comparison test cases much more rigorous, and have them expose the subtle differences between C and C++ here. llvm-svn: 86242
* add some fixit hints.Chris Lattner2009-11-062-2/+4
| | | | llvm-svn: 86240
* Rework the fix-it hint for code likeDouglas Gregor2009-11-061-12/+32
| | | | | | | | | | | get_origin->x where get_origin is actually a function and the user has forgotten the parentheses. Instead of giving a lame note for the fix-it, give a full-fledge error, early, then build the call expression to try to recover. llvm-svn: 86238
* Improve recovery when we fail to parse the operand of a C++ named cast. ↵Douglas Gregor2009-11-061-7/+1
| | | | | | Fixes PR5210 llvm-svn: 86234
* If a member variable of reference type is bound to a temporary in its member ↵Anders Carlsson2009-11-061-0/+5
| | | | | | initializer it needs to be destroyed at the end of the constructor. llvm-svn: 86230
* If a member initializer create temporaries we need to destroy them. Fixes ↵Anders Carlsson2009-11-061-0/+7
| | | | | | PR5077. llvm-svn: 86225
* More cleanup.Anders Carlsson2009-11-061-73/+94
| | | | llvm-svn: 86224
* Cleanup ctor/dtor emission.Anders Carlsson2009-11-061-11/+12
| | | | llvm-svn: 86222
* Handle ParenExprs in mangleExpression.Anders Carlsson2009-11-061-0/+5
| | | | llvm-svn: 86218
* Refine the vcall for a function that is defined in a virtual baseMike Stump2009-11-061-6/+13
| | | | | | class that is overridden in a base that isn't morally virtual. llvm-svn: 86217
* static analyzer: refactor checking logic for returning the address of a ↵Ted Kremenek2009-11-066-131/+226
| | | | | | | | | stack variable or a garbage value into their own respective subclasses of Checker (and put them in .cpp files where their implementation details are hidden from GRExprEngine). llvm-svn: 86215
* If we have a C-style cast, functional cast, or a static_cast to aDouglas Gregor2009-11-061-2/+2
| | | | | | | | | | class type, don't perform the array-to-pointer or function-to-pointer conversions, because we may end up binding a reference to a function or array. With this change, FileCheck now passes -fsyntax-only! llvm-svn: 86211
* When we encounter a derived-to-base conversion when performing anDouglas Gregor2009-11-061-1/+11
| | | | | | | implicit conversion sequence, check the validity of this conversion and then perform it. llvm-svn: 86210
* Minor cleanup of my last patch.Fariborz Jahanian2009-11-061-1/+1
| | | | llvm-svn: 86209
* Minor cleanup: use BuiltinBug (which will soon be renamed) for ↵Ted Kremenek2009-11-065-10/+8
| | | | | | DeferenceChecker and friends so that they always report the same bug type. llvm-svn: 86208
* This patch implements Sema for clause 13.3.3.1p4.Fariborz Jahanian2009-11-064-11/+30
| | | | | | | It has to do with vararg constructors used as conversion functions. Code gen needs work. This is WIP. llvm-svn: 86207
* Make sure that EnumConstantDecls always get a type, even when they have ↵Douglas Gregor2009-11-061-14/+20
| | | | | | type-dependent initializers. llvm-svn: 86197
* Strip off the /clang/tools/clang at the end of the Subversion URL, if it's thereDouglas Gregor2009-11-051-0/+4
| | | | llvm-svn: 86195
* Eliminate tablsJohn Thompson2009-11-052-62/+62
| | | | llvm-svn: 86183
* clean up integer preprocessor type definitions, patch by Ken Dyck!Chris Lattner2009-11-052-14/+42
| | | | llvm-svn: 86177
* Make ASTContext::getIntWidth return 1 for all boolean type variations, not ↵Sebastian Redl2009-11-051-1/+1
| | | | | | just for the unqualified, unaliased bool. llvm-svn: 86174
* The signed/unsigned checker should not warn for value-dependent expressions, ↵Sebastian Redl2009-11-051-0/+5
| | | | | | and should especially not try to evaluate them. llvm-svn: 86173
* Be a little more careful when trying to extract a TypeDecl from a ↵Douglas Gregor2009-11-051-1/+2
| | | | | | enum/class/struct/union specifier; in invalid code, we may also see ClassTemplateDecls. llvm-svn: 86171
* Adding -fshort-wchar option.John Thompson2009-11-054-0/+20
| | | | llvm-svn: 86167
* Don't allow definitions of array variables without some size information in ↵Sebastian Redl2009-11-051-0/+10
| | | | | | C++. Fixed PR5401 llvm-svn: 86165
* Enable debug info for global variables at -O1+Devang Patel2009-11-051-7/+0
| | | | llvm-svn: 86156
* Added support for static variables which requireFariborz Jahanian2009-11-053-13/+17
| | | | | | initialization before main. Fixes pr5396. llvm-svn: 86145
* Eliminate some false positives due to a thinko in the "'blah' isDouglas Gregor2009-11-051-11/+7
| | | | | | | always zero in this context" warning logic. Also, make the diagnostic itself more precise when referring to pointer values ("NULL" vs. "zero"). llvm-svn: 86143
* Add Ubuntu 9.10 libstdc++ install location.Sebastian Redl2009-11-051-0/+5
| | | | llvm-svn: 86142
* When collecting types for built-in candidates, make arrays decay to ↵Sebastian Redl2009-11-051-0/+4
| | | | | | pointers. Otherwise, subscripting an array leads to no candidates at all. Fixes PR5360. llvm-svn: 86140
* Allow the element type of arrays to be incomplete in C++.Sebastian Redl2009-11-053-18/+37
| | | | | | This fixes PR5048. Also fix a bug where zero-sized arrays weren't warned about when the size was unsigned. llvm-svn: 86136
* Parse C++0x constexpr. Test case follows when this does something useful.Sebastian Redl2009-11-053-0/+17
| | | | llvm-svn: 86135
* Fixed two places where we needed to force completion of a typeDouglas Gregor2009-11-054-11/+18
| | | | | | | | | | | | (without complaining if it fails) to get proper semantics: reference binding with a derived-to-base conversion and the enumeration of constructors for user-defined conversions. There are probably more cases to fix, but my prior attempt at statically ensuring that complete-type checking always happens failed. Perhaps I'll try again. With this change, Clang can parse include/llvm/*.h! llvm-svn: 86129
* Implement the conditional-operator part of -Wsign-compare. TurnJohn McCall2009-11-053-5/+12
| | | | | | | | | | | | DiagnoseSignCompare into Sema::CheckSignCompare and call it from more places. Add some enumerator tests. These seem to expose some oddities in the types we're converting C++ enumerators to; in particular, they're converting to unsigned before int, which seems to contradict 4.5 [conv.prom] p2. Note to self: stop baiting Doug in my commit messages. llvm-svn: 86128
* Tweak wording and classifications of analyzer diagnostics.Ted Kremenek2009-11-051-3/+3
| | | | llvm-svn: 86127
* References can't be zero; omit zero check for return value adjustmentsMike Stump2009-11-051-19/+25
| | | | | | in covariant thunks that return references. llvm-svn: 86121
* Refine covariant return value adjustments for thunks when nullMike Stump2009-11-051-1/+19
| | | | | | pointers are returned. llvm-svn: 86120
* Refine layout for indirect virtual base classes.Mike Stump2009-11-052-40/+38
| | | | llvm-svn: 86116
* Replace DiagnosticClient::setLangOptions with {Begin,End}SourceFile, and clarifyDaniel Dunbar2009-11-051-0/+1
| | | | | | | invariants (diagnostics with source informations must occur between {Begin,End}SourceFile). llvm-svn: 86113
* Convert CreateAnalysisConsumer and friends to just take a const ↵Daniel Dunbar2009-11-053-35/+33
| | | | | | Preprocessor&, and simplify. llvm-svn: 86112
* Remove unused SetPreprocessor method.Daniel Dunbar2009-11-051-2/+0
| | | | llvm-svn: 86111
* Acting on Daniel's nagging, remove PathDiagnosticClientFactory() andTed Kremenek2009-11-053-78/+52
| | | | | | | | migrate work in the destructors of PathDiagnosticClients from their destructors to FlushReports(). The destructors now currently call FlushReports(); this will be fixed in a subsequent patch. llvm-svn: 86108
* Make html::{SyntaxHighlight,HighlightMacros} take a const Preprocessor.Daniel Dunbar2009-11-051-16/+21
| | | | | | | | | This is conceptually correct, but adds a huge hack to HighlightMacros which is in fact doing all sorts of mutation to the Preprocessor. See FIXME. Chris, please review. llvm-svn: 86107
* Make LookUpIdentifierInfo const. This makes the Identifiers table mutable and isDaniel Dunbar2009-11-051-1/+1
| | | | | | | | | a little fuzzy, but conceptually it's just uniquing the identifier. Chris, please review. I debated splitting into const/non-const versions where the const one propogated constness to the resulting IdentifierInfo*. llvm-svn: 86106
* StringRefize Preprocessor::getIdentifierInfo.Daniel Dunbar2009-11-051-2/+2
| | | | llvm-svn: 86105
* When instantiating a UnaryOperator, allow the resulting expression toDouglas Gregor2009-11-054-30/+49
| | | | | | | | | | | | | still be dependent or invoke an overloaded operator. Previously, we only supported builtin operators. BinaryOperator/CompoundAssignOperator didn't have this issue because we always built a CXXOperatorCallExpr node, even when name lookup didn't find any functions to save until instantiation time. Now, that code builds a BinaryOperator or CompoundAssignOperator rather than a CXXOperatorCallExpr, to save some space. llvm-svn: 86087
* Modify GRExprEngine::EvalBind() to take both a "store expression" andTed Kremenek2009-11-052-41/+35
| | | | | | | | an "assign expression", representing the expressions where the value binding occurs and the assignment takes place respectively. These are largely syntactic clues for better error reporting. llvm-svn: 86084
* Implement -Wsign-compare, or at least the actual comparison part of it.John McCall2009-11-051-0/+37
| | | | | | | | Conditional operands are next. Fixes part of rdar://problem/7289584. llvm-svn: 86083
* Make sure to grab CVR qualifiers from the canonical type. ARGH!Douglas Gregor2009-11-051-2/+2
| | | | llvm-svn: 86079
OpenPOWER on IntegriCloud