Skip to content
  1. Jan 21, 2014
  2. Jan 20, 2014
    • Alp Toker's avatar
      Build fix following clang r199686 · f747ff1f
      Alp Toker authored
      llvm-svn: 199689
      f747ff1f
    • Rafael Espindola's avatar
      Give explicit sections for string constants used in NSStrings. · d19f80a0
      Rafael Espindola authored
      Without them they can be merged with non unnamed_addr constants during LTO.
      The resulting constant is not unnamed_addr and goes in a different section,
      which causes ld64 to crash.
      
      A testcase that would crash before:
      
      * file1.mm:
      void g(id notification) {
        [notification valueForKey:@"name"];
      }
      
      * file2.cpp:
      extern const char js_name_str[] = "name";
      
      * file3.cpp
      extern bool JS_GetProperty(const char *name);
      extern const char js_name_str[];
      bool js_ReportUncaughtException() { JS_GetProperty(js_name_str); }
      
      run
      
      clang file1.mm  -o file1.o -c -w -emit-llvm
      clang file2.cpp -o file2.o -c -w -emit-llvm
      clang file3.cpp -o file3.o -c -w
      
      ld -dylib -o XUL file1.o file2.o file3.o -undefined dynamic_lookup.
      
      llvm-svn: 199688
      d19f80a0
    • Tom Stellard's avatar
      Fix build broken by LLVM commit r199279 · 8a63b15b
      Tom Stellard authored
      Patch by: Udo van den Heuvel
      
      Tom Stellard:
        - Added ifdef and error handling
      
      llvm-svn: 199687
      8a63b15b
    • Alp Toker's avatar
      Rename FunctionProtoType accessors from 'arguments' to 'parameters' · 9cacbabd
      Alp Toker authored
      Fix a perennial source of confusion in the clang type system: Declarations and
      function prototypes have parameters to which arguments are supplied, so calling
      these 'arguments' was a stretch even in C mode, let alone C++ where default
      arguments, templates and overloading make the distinction important to get
      right.
      
      Readability win across the board, especially in the casting, ADL and
      overloading implementations which make a lot more sense at a glance now.
      
      Will keep an eye on the builders and update dependent projects shortly.
      
      No functional change.
      
      llvm-svn: 199686
      9cacbabd
    • Rafael Espindola's avatar
      Simplify further. · 8ff1610f
      Rafael Espindola authored
      Thanks to David Blaikie for the push.
      
      llvm-svn: 199685
      8ff1610f
    • Hal Finkel's avatar
      Update StackProtector when coloring merges stack slots · a69e5b8b
      Hal Finkel authored
      StackProtector keeps a ValueMap of alloca instructions to layout kind tags for
      use by PEI and other later passes. When stack coloring replaces one alloca with
      a bitcast to another one, the key replacement in this map does not work.
      Instead, provide an interface to manage this updating directly. This seems like
      an improvement over the old behavior, where the layout map would not get
      updated at all when the stack slots were merged. In practice, however, there is
      likely no observable difference because PEI only did anything special with
      'large array' kinds, and if one large array is merged with another, than the
      replacement should already have been a large array.
      
      This is an attempt to unbreak the clang-x86_64-darwin11-RA builder.
      
      llvm-svn: 199684
      a69e5b8b
Loading