aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2010-03-20IRgen: Wrap atomic intrinsics with memory barriers, to ensure we honor the ↵Daniel Dunbar
semantics. - This should be conservatively correct, we eventually should have target hooks for platforms that are less strict. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Evaluate: Fix a subtle bug in the pointer evaluator in which we would do anDaniel Dunbar
expression computation in the wrong bit-width, and end up generating a totally bogus array reference (_g0+8589934546). - This showed up on Prolangs/cdecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99042 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix a number of -fapple-kext issues:Daniel Dunbar
- Disable RTTI. - Disable use of __cxa_atexit. - Disable unwind tables. - Enable freestanding mode. Also, honor -fhosted correctly. <rdar://problem/7515383> C++ support: -fapple-kext not honored git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99041 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Revert r99024, "Augment path diagnostics to include displaying when a messageDaniel Dunbar
expression", statistical evidence indicates it has some kind of memory error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99040 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20C++: Add support for -fno-use-cxa-atexit.Daniel Dunbar
- So much typing, so little gain... Also, rename the __cxx_global_initialization function just to match llvm-gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99039 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Inline GenerateCXXGlobal[VarDecl]InitFunc into sole caller.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99038 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Implement -Wshadow for parameter declarations as well.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99037 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add a newline at the end of the file.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99026 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20For legacy compatibility add a varargs.h header.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99025 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Augment path diagnostics to include displaying when a message expressionTed Kremenek
is not evaluated because the receiver is nil. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99024 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Force joining of "-l" "foo", the linker doesn't eat that format.Daniel Dunbar
<rdar://problem/7641151> clang must eat spaces after -l git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99023 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Allow Render{Separate,Joined} option flags on JoinedOrSeparate ↵Daniel Dunbar
option types. Also, simplify/fix SeparateArg::render with forced join. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99022 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Fix unused variable warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99021 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Migrate typedefs to the top level of xmmintrin.h and remove the sameEric Christopher
one from emmintrin.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99020 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Add include for smmintrin.h to this test.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99019 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Driver: Fix possible crash when targetting an unknown (unsupported) DarwinDaniel Dunbar
platform, e.g. ppc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99016 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20Optimize region-of-interest based cursor walks through theDouglas Gregor
preprocessed entities by grouping preprocessed entities by file ID. This drastically improves performance of repeated clang_getCursor() calls local tests, although it is a bit ugly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99015 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Change CodeGenModule to rely on the Module's symbol table instead ofJohn McCall
shadowing it in the GlobalDeclMap. Eliminates the string-uniquing requirement for mangled names, which should help C++ codegen times a little. Forces us to do string lookups instead of pointer lookups, which might hurt codegen times a little across the board. We'll see how it plays out. Removing the string-uniquing requirement implicitly fixes any bugs like PR6635 which arose from the fact that we had multiple uniquing tables for different kinds of identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Remove the capture, serialization, and deserialization of commentDouglas Gregor
ranges as part of the ASTContext. This code is not and was never used, but contributes ~250k to the size of the Cocoa.h precompiled header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99007 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Robustify PreprocessingRecord slightly, by only creating macroDouglas Gregor
instantiations when we have the corresponding macro definition and by removing macro definition information from our table when the macro is undefined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99004 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Implement serialization and lazy deserialization of the preprocessingDouglas Gregor
record (which includes all macro instantiations and definitions). As with all lay deserialization, this introduces a new external source (here, an external preprocessing record source) that loads all of the preprocessed entities prior to iterating over the entities. The preprocessing record is an optional part of the precompiled header that is disabled by default (enabled with -detailed-preprocessing-record). When the preprocessor given to the PCH writer has a preprocessing record, that record is written into the PCH file. When the PCH reader is given a PCH file that contains a preprocessing record, it will be lazily loaded (which, effectively, implicitly adds -detailed-preprocessing-record). This is the first case where we have sections of the precompiled header that are added/removed based on a compilation flag, which is unfortunate. However, this data consumes ~550k in the PCH file for Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering this detailed preprocessing information, so it's too expensive to turn on by default. In the future, we should investigate a better encoding of this information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19More coherent diagnostics when ivar is placed n categories.Fariborz Jahanian
(related to radar 7538989). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98993 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Teach clang_getCursorKindSpelling() about CXCursor_InvalidCode.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98982 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Make the CIndex API more resilient to being used on invalid code.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98981 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Add test case for <rdar://problem/7770737>.Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98979 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19clang -cc1: Kill off -empty-input only, and replace with -init-only which is anDaniel Dunbar
actual action. - This is easier to use, and more reliable for timing the thing this was actually meant to be useful for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98978 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Promote enum types during -Wsign-compare. Fixes some spurious warnings,John McCall
mostly during conditional expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98975 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Diagnose conversion of 'Class' to/from objective-c Fariborz Jahanian
object pointer types. Fixes radar 7634850. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Make the preprocessing record a PPCallbacks subclass itself,Douglas Gregor
eliminating the extra PopulatePreprocessingRecord object. This will become useful once we start writing the preprocessing record to precompiled headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98966 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Optionally store a PreprocessingRecord in the preprocessor itself, andDouglas Gregor
tie its creation to a CC1 flag -detailed-preprocessing-record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98963 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Try to improve computation of the main file name for debugDouglas Gregor
information, to address recent gdb failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98959 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Pretty-print anonymous types using their kind and presumed location.John McCall
Fixes PR6643. Patch by Mike M! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Remember the "found declaration" for an overload candidate, which is theJohn McCall
entity (if applicable) which was actually looked up. If a candidate was found via a using declaration, this is the UsingShadowDecl; otherwise, if the candidate is template specialization, this is the template; otherwise, this is the function. The point of this exercise is that "found declarations" are the entities we do access control for, not their underlying declarations. Broadly speaking, this patch fixes access control for using declarations. There is a *lot* of redundant code calling into the overload-resolution APIs; we really ought to clean that up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98945 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Fix a longstanding (but previously unknown) bug in the lazyDouglas Gregor
deserialization of precompiled headers, where the deserialization of the source location entry for a buffer (e.g., macro instantiation scratch space) would overwrite a one-element FileID cache in the source manager. When tickled at the wrong time, we would return the wrong decomposed source location and eventually cause c-index-test to crash. Found by dumb luck. It's amazing this hasn't shown up before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98940 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Visit preprocessing elements (macro instantiations and macroDouglas Gregor
definitions) as part of the translation unit, so that normal visitation, token-annotation, and cursor-at retrieval all see preprocessing elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98935 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Revert 98907 since it is breaking buildbots.Bob Wilson
--- Reverse-merging r98907 into '.': D test/Index/c-index-getCursor-pp.c U tools/CIndex/CIndex.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98929 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-19Visit preprocessing elements (macro instantiations and macroDouglas Gregor
definitions) as part of the translation unit, so that normal visitation, token-annotation, and cursor-at retrieval all see preprocessing elements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98907 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18When elevating access along an inheritance path, initialize the computedJohn McCall
access to the (elevated) access of the accessed declaration, if applicable, rather than plunking that access onto the end after we've calculated the inheritance access. Also, being a friend of a derived class gives you public access to its members (subject to later modification by further inheritance); it does not simply ignore a single location of restricted inheritance. Also, when computing the best unprivileged path to a subobject, preserve the information that the worst path might be AS_none (forbidden) rather than a minimum of AS_private. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98899 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18For debug information, get the main file name from the source managerDouglas Gregor
rather than from the -main-file-name flag, since the source manager has proper path information. Fixes <rdar://problem/7769538>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98898 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Try to appease MSVC's standard libraryDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98878 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Try to appease MSVCDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98875 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Make PredefinedExpr::ComputeName() more robust to incorrectTed Kremenek
code when we are printing the name of an Objective-C method whose class has not been declared. Fixes <rdar://problem/7495713>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98874 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Add bounds check in PCHReader. when reading source file entry recordTed Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98873 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Some cleanup, change diagnostic when assigning toFariborz Jahanian
a property which is not lvalue. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98848 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Explicitly link macro instantiations to macro definitions in theDouglas Gregor
preprocessing record. Use that link with clang_getCursorReferenced() and clang_getCursorDefinition() to match instantiations of a macro to the definition of the macro. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98842 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Expose macro definitions as CIndex cursors. These can still only beDouglas Gregor
generated by clang_annotateTokens(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98837 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Introduce the notion of a "preprocessing record", which keeps track ofDouglas Gregor
the macro definitions and macro instantiations that are found during preprocessing. Preprocessing records are *not* generated by default; rather, we provide a PPCallbacks subclass that hooks into the existing callback mechanism to record this activity. The only client of preprocessing records is CIndex, which keeps track of macro definitions and instantations so that they can be exposed via cursors. At present, only token annotation uses these facilities, and only for macro instantiations; both will change in the near future. However, with this change, token annotation properly annotates macro instantiations that do not produce any tokens and instantiations of macros that are later undef'd, improving our consistency. Preprocessing directives that are not macro definitions are still handled by clang_annotateTokens() via re-lexing, so that we don't have to track every preprocessing directive in the preprocessing record. Performance impact of preprocessing records is still TBD, although it is limited to CIndex and therefore out of the path of the main compiler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98836 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18Replace some SmallVectors with arrays.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98833 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18DefangDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98827 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-18More token-annotation experimentation, preprocessing the annotatedDouglas Gregor
token sequence to detect macro instantiations (that produce at least token). WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98826 91177308-0d34-0410-b5e6-96231b3b80d8