aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2012-10-25Remove the old predefines-buffer diffing code completely. It's beenDouglas Gregor
replaced by the more efficient, cleaner preprocessor-option version that occurs earlier in PCH validation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166654 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Fix computation of predefines buffer from the preprocessor-optionDouglas Gregor
checking, and disable the old predefines-buffer-diff'ing code path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166653 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25When we're devirtualizing a method call, make sure the method has the ↵Eli Friedman
correct IR type. Reported in the thread "devirtualisation appears to crash clang on covariant functions on ARM" on cfe-dev. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166651 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25ASTUnit doesn't actually care about the predefines; don't record them.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166650 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25The the preprocessor option validator to compute suggestedDouglas Gregor
predefines. We're not quite ready to cut over to these suggested predefines yet, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166648 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25Add some support for diagnosing possibly mismatched constraint, type size andBill Wendling
modifiers. (From an idea by Eric...) <rdar://problem/12284092> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166647 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-25'constexpr' and 'friend' are both declaration specifiers. Teach the parser ↵Richard Smith
this, for better error recovery. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166645 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24PR14171: Don't crash if we hit one of the paths where GetFullTypeForDeclaratorRichard Smith
rebuilds a function type, and that function type has parens around its name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166644 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Teach the PCH validator to check the preprocessor options, especiallyDouglas Gregor
the macros that are #define'd or #undef'd on the command line. This checking happens much earlier than the current macro-definition checking and is far cleaner, because it does a direct comparison rather than a diff of the predefines buffers. Moreover, it allows us to use the result of this check to skip over PCH files within a directory that have non-matching -D's or -U's on the command line. Finally, it improves the diagnostics a bit for mismatches, fixing <rdar://problem/8612222>. The old predefines-buffer diff'ing will go away in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166641 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Fix false positive in -Wunused-variable when a ctor call make involve cleanups.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166625 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Don't print scope qualifiers for references to a type defined locally in a ↵Eli Friedman
function. Patch by Grzegorz Jablonski. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166617 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24(De-)serialize the preprocessor options, including macros defined,Douglas Gregor
-include'd files, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166614 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Teach the preprocessor to hold onto the preprocessor options.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166599 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Move PreprocessorOptions into the Lex library, and make it intrusivelyDouglas Gregor
reference-counted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166587 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24(De-)serialize header search options.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166586 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Move HeaderSearchOptions into the Lex library, make it intrusivelyDouglas Gregor
reference-counted, and hold a reference to it in HeaderSearch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166583 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24(De-)serialize the file system options.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166577 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Serialize DiagnosticOptions to the AST file.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166572 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Removed an extra blank line.Mahesha S
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166571 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Adds the possibility to run ASTMatchFinder over arbitrary AST nodes.Manuel Klimek
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166567 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Remove the HiddenWeakTemplateVTables CodeGen option. It's currently unused.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166561 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Clang now attempts to create a TargetMachine whenever a triple is given.Nadav Rotem
Many of our tests specify triples that are not built into clang. In this commit we allow clang to fail loading the triple if we are only using clang to emit llvm ir. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166543 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Add padding inreg registers to cause llvm to skip ecx when needed withRafael Espindola
the x86_fastcallcc calling convention. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166538 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Add inreg markers with the x86_fastcallcc calling convention.Rafael Espindola
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166537 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Address feedback from Eli Friedman on r166522.Matt Beaumont-Gay
In particular, we do want to warn on some unused cast subexpressions within macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166534 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-24Change EmitAssemblyHelper to create the target machine earlyNadav Rotem
and use it to initialize the TargetTransformInfo analysis pass. We need the TTI information for the loop vectorizer. rdar://12464901 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166532 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23[analyzer] Handle 'SomeVar.SomeEnumConstant', which is legal in C++.Jordan Rose
This caused assertion failures analyzing LLVM. <rdar://problem/12560282> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166529 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23[analyzer] Replace -analyzer-no-eagerly-trim-egraph with graph-trim-interval.Jordan Rose
After every 1000 CFGElements processed, the ExplodedGraph trims out nodes that satisfy a number of criteria for being "boring" (single predecessor, single successor, and more). Rather than controlling this with a cc1 option, which can only disable this behavior, we now have an analyzer-config option, 'graph-trim-interval', which can change this interval from 1000 to something else. Setting the value to 0 disables reclamation. The next commit relies on this behavior to actually test anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166528 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Don't emit -Wunused-value warnings from macro expansions.Matt Beaumont-Gay
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166522 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Use a .def file for most of the diagnostic options.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166520 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Objective-C: check that when a category method is being implemented,Fariborz Jahanian
method type in cateogry matches the implementation. // rdar://12519216 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166518 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Make DiagnosticOptions intrusively reference-counted, and make sureDouglas Gregor
the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object alive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166508 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Fix pretty-printing pseudo-destructor calls. Patch by Grzegorz Jablonski.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166500 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Add a new warning -Wmissing-variable-declarations, to warn about variablesEli Friedman
defined without a previous declaration. This is similar to -Wmissing-prototypes, but for variables instead of functions. Patch by Ed Schouten. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166498 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Switch CodeGenOptions over to a .def file, like we do with LangOptions.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166497 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23When rebuilding a DependentScopeDeclRefExpr, perform a lookup into the scopeRichard Smith
even if it's dependent, in case it now names a member of the current instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166496 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23[ms-inline asm] Update for r166433.Chad Rosier
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166489 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Handle -pthread, -pg and -shared correctly on bitrig.Rafael Espindola
Patch by David Hill. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166483 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23If the precompiled header named by "-include" is actually a directory,Douglas Gregor
check each of the files within that directory to determine if any of them is an AST file that matches the language and target options. If so, the first matching AST file is loaded. This fixes a longstanding discrepency with GCC's precompiled header implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166469 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Fix -Wunused-value to not warn on expressions that have unresolved lookups dueMatt Beaumont-Gay
to dependent arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166468 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23[ms-inline-asm] Add handling for errors coming out of the backend.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166463 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Don't try to use inreg with 0 sized structs. Thanks to Eli for reporting theRafael Espindola
regression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166461 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-23Ugly ugly hack for libstdc++-4.6 and libstdc++-4.7 compatibility. TheseRichard Smith
libraries have an incorrect definition of std::common_type (inherited from a bug in the standard -- see LWG issue 2141), whereby they produce reference types when they should not. If we instantiate a typedef named std::common_type<...>::type, which is defined in a system header as decltype(... ? ... : ...), and the decltype produces a reference type, convert it to the non-reference type. (This doesn't affect any LWG2141-conforming implementation of common_type, such as libc++'s, because the default implementation of common_type<...>::type isn't supposed to produce a reference type.) This is horrible. I'm really sorry. :( Better ideas appreciated! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166455 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Handle implicitly-included PCH files the same way asDouglas Gregor
implicitly-included PTH files during initialization, delaying the mapping down to the "original source file" until after later in the initialization process. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166452 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Allow clients of the AST reader to specify what kinds of AST loadDouglas Gregor
failures they know how to tolerate, e.g., out-of-date input files or configuration/version mismatches. Suppress the corresponding diagnostics if the client can handle it. No clients actually use this functionality, yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166449 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Collapse ASTReader::ReadSLocEntryRecord() into its only caller,Douglas Gregor
ReadSLocEntry(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166447 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Distinguish the various kinds of AST file loading failures:Douglas Gregor
file corruption, compiler version mismatch, target/language configuration mismatch, out-of-date AST file. No functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166446 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22[Options] Add prefixes to options.Michael J. Spencer
Each option has a set of prefixes. When matching an argument such as -funroll-loops. First the leading - is removed as it is a prefix. Then a lower_bound search for "funroll-loops" is done against the option table by option name. From there each option prefix + option name combination is tested against the argument. This allows us to support Microsoft style options where both / and - are valid prefixes. It also simplifies the cases we already have where options come in both - and -- forms. Almost every option for gnu-ld happens to have this form. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166444 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22ASTReader.cpp: Fix a warning. [-Wunused-variable]NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166442 91177308-0d34-0410-b5e6-96231b3b80d8
2012-10-22Fix for PR13334. This prevents crashes that result from badly formedRichard Trieu
expressions involving __has_include git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166438 91177308-0d34-0410-b5e6-96231b3b80d8