summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Implement a better version of delegating constructor cycle detection.Alexis Hunt2011-05-043-20/+65
| | | | | | | | | | | | | This is more efficient as it's all done at once at the end of the TU. This could still get expensive, so a flag is provided to disable it. As an added bonus, the diagnostics will now print out a cycle. The PCH test is XFAILed because we currently can't deal with a note emitted in the header and I, being tired, see no other way to verify the serialization of delegating constructors. We should probably address this problem /somehow/ but no good solution comes to mind. llvm-svn: 130836
* No, fix this use after free properly.Nick Lewycky2011-05-041-3/+2
| | | | llvm-svn: 130833
* Convert the non-temporal store builtins to LLVM-native IR.Bill Wendling2011-05-041-0/+17
| | | | llvm-svn: 130830
* Fix use after free through StringRef.Nick Lewycky2011-05-041-2/+3
| | | | llvm-svn: 130828
* Type prefixes of unresolved-names should only be mangled as unresolved-typesJohn McCall2011-05-041-15/+92
| | | | | | | | if they match that production, i.e. if they're template type parameters or decltypes (or, as an obvious case not yet described in the ABI document, if they're template template parameters applied to template arguments). llvm-svn: 130824
* Implement serialization of delegating constructors.Alexis Hunt2011-05-042-15/+31
| | | | llvm-svn: 130822
* Ensure that delegating constructor loop detection uses canonicalAlexis Hunt2011-05-041-2/+2
| | | | | | declarations. llvm-svn: 130821
* When tag lookup finds something ambiguous, and we're defining a newDouglas Gregor2011-05-041-0/+13
| | | | | | | | | | | | | tag, filter out those ambiguous names that we found if they aren't within the declaration context where this newly-defined tag will be visible. This is basically a hack, because we really need to fix the lookup of tag declarations in this case to not find things it shouldn't. However, it's better than what we had before, and it fixes <rdar://problem/9168556>. llvm-svn: 130810
* Introduce a new libclang API, clang_isFileMultipleIncludeGuarded(),Douglas Gregor2011-05-043-2/+19
| | | | | | | | which determines whether a particular file is actually a header that is intended to be guarded from multiple inclusions within the same translation unit. llvm-svn: 130808
* Introduce ASTUnit::LoadFromCompilerInvocationAction that allows one to ↵Argyrios Kyrtzidis2011-05-031-0/+113
| | | | | | | | | create an ASTUnit from a CompilerInvocation along with an ASTFrontendAction to invoke, and without all the goo about the precompiled preamble. llvm-svn: 130805
* Ensure that destructors are properly inovked when an exception leavesAlexis Hunt2011-05-032-1/+32
| | | | | | | | | | the body of a delegating constructor call. This means that the delegating constructor implementation should be complete and correct, though there are some rough edges (diagnostic quality with the cycle detection and using a deleted destructor). llvm-svn: 130803
* Only the first zero-length bitfield decides alignment ofFariborz Jahanian2011-05-032-3/+6
| | | | | | | the followup data member in an ms_struct struct. // rdar:// 8823265 llvm-svn: 130795
* Move the AST modifications to after the cycle detection inAlexis Hunt2011-05-031-6/+12
| | | | | | | lib/Sema/SemaDeclCXX.cpp to avoid getting stuck in an infinite loop. See the comment for more explanation. llvm-svn: 130788
* Extend -Wnon-pod-memset to also encompass memcpy() and memmove(),Douglas Gregor2011-05-031-36/+44
| | | | | | | | checking both the source and the destination operands, renaming the warning group to -Wnon-pod-memaccess and tweaking the diagnostic text in the process. llvm-svn: 130786
* Finish off rules for z-length bitfields in ms_structFariborz Jahanian2011-05-035-26/+40
| | | | | | structs. // rdar://8823265 llvm-svn: 130783
* Fix delegating constructors stylistic issues.Alexis Hunt2011-05-033-14/+22
| | | | | | Material bugfixes to come this afternoon. llvm-svn: 130782
* Separate the -Wnon-pod-memset warnings into two separate warnings:Douglas Gregor2011-05-031-10/+20
| | | | | | | - a default-on warning for pointers to dynamic classes (= classes with vtables) - a default-off warning for other non-POD types llvm-svn: 130781
* Remove unused but set variable.Benjamin Kramer2011-05-031-1/+0
| | | | llvm-svn: 130776
* Fix a double free when parsing malformed code. Fixes rdar://9173693.Argyrios Kyrtzidis2011-05-031-2/+5
| | | | llvm-svn: 130775
* When parsing a template friend declaration we dropped the templateChandler Carruth2011-05-032-2/+12
| | | | | | | | | | | | | | | | | | | | parameters on the floor in certain cases: class X { template <typename T> friend typename A<T>::Foo; }; This was parsed as a *non* template friend declaration some how, and received an ExtWarn. Fixing the parser to actually provide the template parameters to the freestanding declaration parse triggers the code which specifically looks for such constructs and hard errors on them. Along the way, this prevents us from trying to instantiate constructs like the above inside of a outer template. This is important as loosing the template parameters means we don't have a well formed declaration and template instantiation will be unable to rebuild the AST. That fixes a crash in the GCC test suite. llvm-svn: 130772
* Only check the use of memset() if we're refering to a C function namedDouglas Gregor2011-05-031-1/+3
| | | | | | 'memset' with external linkage. llvm-svn: 130770
* Removing strncpy() checking in CString checker for now. Some significant ↵Lenny Maiorani2011-05-031-1/+1
| | | | | | changes need to be made to properly support modeling of it since it potentially leaves strings non-null terminated. llvm-svn: 130758
* Revert r130750, "Make the mno flags match GCC. Patch by Alexander Best!", it ↵Daniel Dunbar2011-05-031-45/+29
| | | | | | breaks tests. llvm-svn: 130753
* Make the mno flags match GCC. Patch by Alexander Best!Michael J. Spencer2011-05-031-29/+45
| | | | llvm-svn: 130750
* Added an assert to IntegerLiteral to ensure that the integer type passed in ↵Richard Trieu2011-05-021-1/+2
| | | | | | | | has the same size as the APInt passed in. Also, updated the comments around IntegerLiteral. Changed the integer type that range-based for-loops used. Switched to pointer difference type, which satisfies the new assert in IntegerLiteral. llvm-svn: 130739
* Function with internal linkage name do not have mangled name.Devang Patel2011-05-021-2/+1
| | | | llvm-svn: 130736
* Do not try to get mangled name of block helpers. Apply a stopgap measure to ↵Devang Patel2011-05-021-1/+3
| | | | | | fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash. llvm-svn: 130734
* Tweak the retain/release checker to not stop tracking retained objects when ↵Ted Kremenek2011-05-021-0/+7
| | | | | | calling C++ methods. This is a temporary solution to prune false positives until we have a general story using annotations. llvm-svn: 130726
* Add the -mstackrealign option which just communicates the need toEric Christopher2011-05-021-0/+6
| | | | | | | | force align the stack to the backend. Fixes rdar://9289631 llvm-svn: 130725
* Driver/Darwin: Honor --sysroot= when invoking the linker, on Darwin.Daniel Dunbar2011-05-021-6/+11
| | | | llvm-svn: 130723
* Emit debug info for __destroy_helper_block_ and __copy_helper_block.Devang Patel2011-05-021-0/+8
| | | | llvm-svn: 130719
* Skip extra copy from aggregate where it isn't necessary; ↵Eli Friedman2011-05-022-4/+18
| | | | | | rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0. llvm-svn: 130717
* Augment retain/release checker to not warn about tracked objects passed as ↵Ted Kremenek2011-05-028-45/+96
| | | | | | arguments to C++ constructors. This is a stop-gap measure for Objective-C++ code that uses smart pointers to manage reference counts. llvm-svn: 130711
* When using -std= flag added check to make sure language and standard are ↵Chad Rosier2011-05-021-0/+34
| | | | | | compatable llvm-svn: 130710
* Implements strncasecmp() checker and simplifies some of the logic around ↵Lenny Maiorani2011-05-021-22/+16
| | | | | | creating substrings if necessary and calling the appropriate StringRef::compare/compare_lower(). llvm-svn: 130708
* Don't abuse reinterpret cast to do something the API of PointerUnionChandler Carruth2011-05-021-2/+2
| | | | | | | | | | | | provides proper support for. This was caught by -Wundefined-reinterpret-cast, and I think a reasonable case for it to warn on. Also use is<...> instead of dyn_cast<...> when the result isn't needed. This whole thing should probably switch to using UsuallyTinyPtrVector. llvm-svn: 130707
* Add a warning for when reinterpret_cast leads to undefined behavior, patch ↵Argyrios Kyrtzidis2011-05-022-1/+67
| | | | | | by Richard Trieu! llvm-svn: 130703
* Switch CallArgList from an std::pair to a new CallArg struct (which will ↵Eli Friedman2011-05-023-14/+21
| | | | | | eventually gain more members). Working towards modifying call emission to avoid unnecessary copies. llvm-svn: 130700
* Simplify code a bit by using CallArgList::add. No intended functionality ↵Eli Friedman2011-05-028-77/+55
| | | | | | change. llvm-svn: 130699
* Disable CFI if not using the integrated assembler. We should probably do ↵Rafael Espindola2011-05-021-5/+21
| | | | | | | | this only for OS X, but it is probably not all that important. llvm-svn: 130697
* More rule enforcement of zero bitfields for ms_struct.Fariborz Jahanian2011-05-026-7/+34
| | | | llvm-svn: 130696
* lib/Frontend/InitHeaderSearch.cpp: Tweak AddPath() to accept "/foo/bar" (not ↵NAKAMURA Takumi2011-05-021-0/+5
| | | | | | | "X:\foo\bar") with -isysroot. test/PCH/reloc.c can pass. FIXME: We should consider better isysroot scheme on Win32 hosts. llvm-svn: 130683
* Remove redeclaration of Invalid. The code that set this to true was updating anNick Lewycky2011-05-021-1/+0
| | | | | | | | | Invalid that was never read from again, causing non-type-template-parms to be marked valid when in fact they weren't. This was caught by GCC 4.6's -Wunused-but-set-variable warning. llvm-svn: 130680
* Remove unused variable spotted by GCC.Nick Lewycky2011-05-021-2/+1
| | | | | | | | | Devang, can we remove this call entirely? If I try that, "make check" passes but the call has a side-effect of ensuring that the block's context exists in the debug info. getContextDescriptor() is used in a void context for that side- effect elsewhere in this file. Please take a look! llvm-svn: 130679
* Remove unused variable, but keep function call with side-effect.Nick Lewycky2011-05-021-1/+1
| | | | llvm-svn: 130678
* I updated this constructor's interface, and didn't have to fix anyChandler Carruth2011-05-021-20/+0
| | | | | | callers. Shockingly enough, *there are none*! llvm-svn: 130677
* Remove dead variable caught by GCC.Nick Lewycky2011-05-021-3/+0
| | | | llvm-svn: 130676
* Nuke stale code for separately importing the qualifer -- it's just partChandler Carruth2011-05-021-7/+0
| | | | | | of the QualifierLoc, and that's all we need to import now. llvm-svn: 130675
* Remove dead variable, flagged by gcc's -Wunused-but-set-variable.Nick Lewycky2011-05-021-2/+0
| | | | llvm-svn: 130674
* Remove dead variable flagged by gcc's -Wunused-but-set-variable. NoNick Lewycky2011-05-021-1/+0
| | | | | | functionality change. llvm-svn: 130673
OpenPOWER on IntegriCloud