Skip to content
  1. May 03, 2013
    • Benjamin Kramer's avatar
    • Ashok Thirumurthi's avatar
    • Daniel Jasper's avatar
      Fix expression recognition in for-loops. · c37de302
      Daniel Jasper authored
      Before: for (; a&& b;) {}
      After:  for (; a && b;) {}
      llvm-svn: 181017
      c37de302
    • Richard Sandiford's avatar
      Remove comment that no target supports 128-bit IEEE floats · ae426b4a
      Richard Sandiford authored
      The soon-to-be-committed SystemZ port uses 128-bit IEEE floats.
      MIPS64 GNU/Linux does too (albeit with unusual NaNs).
      
      llvm-svn: 181016
      ae426b4a
    • Richard Sandiford's avatar
      [SystemZ] Add MCJIT support · ca044082
      Richard Sandiford authored
      Another step towards reinstating the SystemZ backend.  I'll commit
      the configure changes separately (TARGET_HAS_JIT etc.), then commit
      a patch to enable the MCJIT tests on SystemZ.
      
      llvm-svn: 181015
      ca044082
    • Dmitri Gribenko's avatar
      Add const qualifier to Sema::getTypeName's parameter `II` · 5267fdfb
      Dmitri Gribenko authored
      Patch by Ismail Pazarbasi.
      
      llvm-svn: 181011
      5267fdfb
    • Ulrich Weigand's avatar
      · 90c9abdd
      Ulrich Weigand authored
      [SystemZ] Support System Z as host architecture
      
      The llvm::sys::AddSignalHandler function (as well as related routines) in
      lib/Support/Unix/Signals.inc currently registers a signal handler routine
      via "sigaction".  When this handler is called due to a SIGSEGV, SIGILL or
      similar signal, it will show a stack backtrace, deactivate the handler,
      and then simply return to the operating system.  The intent is that the
      OS will now retry execution at the same location as before, which ought
      to again trigger the same error condition and cause the same signal to be
      delivered again.  Since the hander is now deactivated, the OS will take
      its default action (usually, terminate the program and possibly create
      a core dump).
      
      However, this method doesn't work reliably on System Z:  With certain
      signals (namely SIGILL, SIGFPE, and SIGTRAP), the program counter stored
      by the kernel on the signal stack frame (which is the location where
      execution will resume) is not the instruction that triggered the fault,
      but then instruction *after it*.  When the LLVM signal handler simply
      returns to the kernel, execution will then resume at *that* address,
      which will not trigger the problem again, but simply go on and execute
      potentially unrelated code leading to random errors afterwards.
      
      To fix this, the patch simply goes and re-raises the signal in question
      directly from the handler instead of returning from it.  This is done
      only on System Z and only for those signals that have this particular
      problem.
      
      llvm-svn: 181010
      90c9abdd
    • Amara Emerson's avatar
      Add support for reading ARM ELF build attributes. · 2f54d9fe
      Amara Emerson authored
      Build attribute sections can now be read if they exist via ELFObjectFile, and
      the llvm-readobj tool has been extended with an option to dump this information
      if requested. Regression tests are also included which exercise these features.
      
      Also update the docs with a fixed ARM ABI link and a new link to the Addenda
      which provides the build attributes specification.
      
      llvm-svn: 181009
      2f54d9fe
    • Richard Sandiford's avatar
      [SystemZ] Add ELF relocation support · affdc8b5
      Richard Sandiford authored
      Another step towards reinstating the SystemZ backend.  Tests will be
      included in the main backend patch.
      
      llvm-svn: 181008
      affdc8b5
    • Richard Sandiford's avatar
      [SystemZ] Add llvm::Triple::systemz · a238c5e0
      Richard Sandiford authored
      First step towards reinstating the SystemZ backend.  Tests will be
      included in the main backend patch.
      
      llvm-svn: 181007
      a238c5e0
    • Benjamin Kramer's avatar
      Add support for -march=btver2. · 914d7e06
      Benjamin Kramer authored
      llvm-svn: 181006
      914d7e06
    • Benjamin Kramer's avatar
    • Hans Wennborg's avatar
      Support __wchar_t in -fms-extensions and -fms-compatibility modes. · cadd77c0
      Hans Wennborg authored
      MSVC provides __wchar_t, either as an alias for the built-in wchar_t
      type, or as a separate type depending on language (C vs C++) and flags
      (-fno-wchar).
      
      In -fms-extensions, Clang will simply accept __wchar_t as an alias for
      whatever type is used for wide character literals. In -fms-compatibility, we
      try to mimic MSVC's behavior by always making __wchar_t a builtin type.
      
      This fixes PR15815.
      
      llvm-svn: 181004
      cadd77c0
    • Pekka Jaaskelainen's avatar
      Added pocl and TCE blurbs to the ReleaseNotes. · b531a117
      Pekka Jaaskelainen authored
      llvm-svn: 181001
      b531a117
    • John McCall's avatar
      Correctly emit certain implicit references to 'self' even within · dec348f7
      John McCall authored
      a lambda.
      
      Bug #1 is that CGF's CurFuncDecl was "stuck" at lambda invocation
      functions.  Fix that by generally improving getNonClosureContext
      to look through lambdas and captured statements but only report
      code contexts, which is generally what's wanted.  Audit uses of
      CurFuncDecl and getNonClosureAncestor for correctness.
      
      Bug #2 is that lambdas weren't specially mapping 'self' when inside
      an ObjC method.  Fix that by removing the requirement for that
      and using the normal EmitDeclRefLValue path in LoadObjCSelf.
      
      rdar://13800041
      
      llvm-svn: 181000
      dec348f7
    • Jordan Rose's avatar
      [analyzer] Check the stack frame when looking for a var's initialization. · 320fbf05
      Jordan Rose authored
      FindLastStoreBRVisitor is responsible for finding where a particular region
      gets its value; if the region is a VarRegion, it's possible that value was
      assigned at initialization, i.e. at its DeclStmt. However, if a function is
      called recursively, the same DeclStmt may be evaluated multiple times in
      multiple stack frames. FindLastStoreBRVisitor was not taking this into
      account and just picking the first one it saw.
      
      <rdar://problem/13787723>
      
      llvm-svn: 180997
      320fbf05
    • Jordan Rose's avatar
      [analyzer] Fix trackNullOrUndef when tracking args that have nil receivers. · cea47b78
      Jordan Rose authored
      There were actually two bugs here:
      - if we decided to look for an interesting lvalue or call expression, we
        wouldn't go find its node if we also knew we were at a (different) call.
      - if we looked through one message send with a  nil receiver, we thought we
        were still looking at an argument to the original call.
      
      Put together, this kept us from being able to track the right values, which
      means sub-par diagnostics and worse false-positive suppression.
      
      Noticed by inspection.
      
      llvm-svn: 180996
      cea47b78
    • Jason Molenda's avatar
      Add a hard limit to how many frames lldb will unwind in a single · 9dbe9e63
      Jason Molenda authored
      thread before UnwindLLDB::AddOneMoreFrame calls it quits.  We have
      a couple of reports of unending backtraces in the field and we
      haven't been able to collect any information about what kind of
      backtrace is causing this.  We've found on Mac OS X that it's tricky
      to get more than around 200k stack frames before a process exceeds
      its stack space so we're starting with a hard limit of 300,000 frames.
      <rdar://problem/13383069> 
      
      llvm-svn: 180995
      9dbe9e63
    • Jason Molenda's avatar
    • Greg Clayton's avatar
      Remove unused OperatingSystem plugin. · e26dcbdd
      Greg Clayton authored
      llvm-svn: 180993
      e26dcbdd
    • Aaron Ballman's avatar
      cc958f00
    • Aaron Ballman's avatar
      63fe0148
    • Adrian Prantl's avatar
      Revert "Attempt to un-break the gdb buildbot." · 857f9237
      Adrian Prantl authored
      This reverts commit 180982.
      
      llvm-svn: 180990
      857f9237
    • Jason Molenda's avatar
      Pass down the architecture of the module we're trying to · 0faf3311
      Jason Molenda authored
      match when looking at kext on the local filesystem.
      <rdar://problem/13785112> 
      
      llvm-svn: 180989
      0faf3311
    • Akira Hatanaka's avatar
      9b27dc53
    • Enrico Granata's avatar
      <rdar://problem/11742979> · c3387333
      Enrico Granata authored
      SWIG is smart enough to recognize that C++ operators == and != mean __eq__ and __ne__ in Python and do the appropriate translation
      But it is not smart enough to recognize that mySBObject == None should return False instead of erroring out
      The %pythoncode blocks are meant to provide those extra smarts (and they play some SWIG&Python magic to find the right function to call behind the scenes with no risk of typos :-)
      Lastly, SBBreakpoint provides an == but never provided a != operator - common courtesy is to provide both
      
      llvm-svn: 180987
      c3387333
    • Ted Kremenek's avatar
      Make cleanUpLocation() a self-contained function. · 57f745ec
      Ted Kremenek authored
      llvm-svn: 180986
      57f745ec
    • Reid Kleckner's avatar
      [ms-cxxabi] Emit non-virtual member function pointers · 7d0efb57
      Reid Kleckner authored
      Without any conversion, this is pretty straightforward.  Most of the
      fields can be zeros.  The order is:
      
      - field offset or pointer
      - nonvirtual adjustment (for MI functions)
      - vbptr offset (for unspecified)
      - virtual adjustment offset (for virtual inheritance)
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D699
      
      llvm-svn: 180985
      7d0efb57
    • Greg Clayton's avatar
      <rdar://problem/13751683> · a80ea127
      Greg Clayton authored
      Make sure to handle all thumb variants correctly.
      
      llvm-svn: 180984
      a80ea127
    • Reid Kleckner's avatar
      Fix missing include in Hexagon code for Release+Asserts · 1c76f155
      Reid Kleckner authored
      llvm-svn: 180983
      1c76f155
    • Adrian Prantl's avatar
      Attempt to un-break the gdb buildbot. · 44f38013
      Adrian Prantl authored
      - Use the debug location of the return expression for the cleanup code
        if the return expression is trivially evaluatable, regardless of the
        number of stop points in the function.
      - Ensure that any EH code in the cleanup still gets the line number of
        the closing } of the lexical scope.
      - Added a testcase with EH in the cleanup.
      
      rdar://problem/13442648
      
      llvm-svn: 180982
      44f38013
    • Ted Kremenek's avatar
      Re-apply 180974 with the build error fixed. This was the result · f12d9d93
      Ted Kremenek authored
      of a weird merge error with git.
      
      llvm-svn: 180981
      f12d9d93
    • Bill Wendling's avatar
      Use unbuffered I/O. This reduces the runtime by about half. Our implementation... · 6ce98c49
      Bill Wendling authored
      Use unbuffered I/O. This reduces the runtime by about half. Our implementation is now only about 5 times slower than gcc's.
      
      llvm-svn: 180980
      6ce98c49
    • Rafael Espindola's avatar
      Revert "Change LocationContextMap to be a temporary instead of shared variable in BugReporter." · c73756b1
      Rafael Espindola authored
      This reverts commit 180974. It broke the build.
      
      llvm-svn: 180979
      c73756b1
    • John McCall's avatar
      In MC asm parsing, account for the possibility of whitespace within · f73981b2
      John McCall authored
      the "identifier" parsed by the frontend callback by skipping forward
      until we've consumed a token that ends at the point dictated by the
      callback.
      
      In addition, inform the callback when it's parsing an unevaluated
      operand (e.g. mov eax, LENGTH A::x) as opposed to an evaluated one
      (e.g. mov eax, [A::x]).
      
      This commit depends on a clang commit.
      
      llvm-svn: 180978
      f73981b2
    • Andrew Kaylor's avatar
      Adding test for non-API process attach · 46791da6
      Andrew Kaylor authored
      llvm-svn: 180977
      46791da6
    • John McCall's avatar
      Move parsing of identifiers in MS-style inline assembly into · f413f5ed
      John McCall authored
      the actual parser and support arbitrary id-expressions.
      
      We're actually basically set up to do arbitrary expressions here
      if we wanted to.
      
      Assembly operands permit things like A::x to be written regardless
      of language mode, which forces us to embellish the evaluation
      context logic somewhat.  The logic here under template instantiation
      is incorrect;  we need to preserve the fact that an expression was
      unevaluated.  Of course, template instantiation in general is fishy
      here because we have no way of delaying semantic analysis in the
      MC parser.  It's all just fishy.
      
      I've also fixed the serialization of MS asm statements.
      
      This commit depends on an LLVM commit.
      
      llvm-svn: 180976
      f413f5ed
    • Enrico Granata's avatar
      <rdar://problem/11558812> · bfa9fb13
      Enrico Granata authored
      Allow command script import to load packages.
      
      e.g.:
      egranata$ ./lldb
      (lldb) command script import lldb.macosx.crashlog
      "crashlog" and "save_crashlog" command installed, use the "--help" option for detailed help
      "malloc_info", "ptr_refs", "cstr_refs", and "objc_refs" commands have been installed, use the "--help" options on these commands for detailed help.
      The "unwind-diagnose" command has been installed, type "help unwind-diagnose" for detailed help.
      (lldb) 
      
      ./lldb
      (lldb) command script import theFoo
      I am happy
      (lldb) fbc
      àèìòù
      (lldb)
      
      egranata$ ls theFoo/
      __init__.py theBar.py
      
      egranata$ cat theFoo/__init__.py 
      import lldb
      import theBar
      
      def __lldb_init_module(debugger, internal_dict):
      	print "I am happy"
      	debugger.HandleCommand("command script add -f theFoo.theBar.theCommand fbc")
      	return None
      
      egranata$ cat theFoo/theBar.py 
      #encoding=utf-8
      
      def theCommand(debugger, command, result, internal_dict):
      	result.PutCString(u"àèìòù")
      	return None
      
      llvm-svn: 180975
      bfa9fb13
    • Ted Kremenek's avatar
      Change LocationContextMap to be a temporary instead of shared variable in BugReporter. · 48bd5fdd
      Ted Kremenek authored
      BugReporter is used to process ALL bug reports.  By using a shared map,
      we are having mappings from different PathDiagnosticPieces to LocationContexts
      well beyond the point where we are processing a given report.  This
      state is inherently error prone, and is analogous to using a global
      variable.  Instead, just create a temporary map, one per report,
      and when we are done with it we throw it away.  No extra state.
      
      llvm-svn: 180974
      48bd5fdd
    • Douglas Gregor's avatar
      Use attribute argument information to determine when to parse attribute arguments as expressions. · d2472d4c
      Douglas Gregor authored
      This change partly addresses a heinous problem we have with the
      parsing of attribute arguments that are a lone identifier. Previously,
      we would end up parsing the 'align' attribute of this as an expression
      "(Align)":
      
       template<unsigned Size, unsigned Align>
       class my_aligned_storage
       {
         __attribute__((align((Align)))) char storage[Size];
       };
      
      while this would parse as a "parameter name" 'Align':
      
       template<unsigned Size, unsigned Align>
       class my_aligned_storage
       {
         __attribute__((align(Align))) char storage[Size];
       };
      
      The code that handles the alignment attribute would completely ignore
      the parameter name, so the while the first of these would do what's
      expected, the second would silently be equivalent to
      
       template<unsigned Size, unsigned Align>
       class my_aligned_storage
       {
         __attribute__((align)) char storage[Size];
       };
      
      i.e., use the maximal alignment rather than the specified alignment.
      
      Address this by sniffing the "Args" provided in the TableGen
      description of attributes. If the first argument is "obviously"
      something that should be treated as an expression (rather than an
      identifier to be matched later), parse it as an expression.
      
      Fixes <rdar://problem/13700933>.
      
      llvm-svn: 180973
      d2472d4c
Loading