1. 26 Sep, 2018 25 commits
    • [Ada] Missing error on non-limited derived type with limited component · 8e532681
      This patch fixes a missing error on a type extension with limited
      components, when the parent type is a derived limited interface. This
      may allow the unit to improperly compile, but may lead to bind-time
      errors when compiling a client of that unit.
      
      Compiling p.adb must yield:
      
       keys.ads:8:06: extension of nonlimited type cannot have limited components
       keys.ads:8:06: limitedness is not inherited from limited interface
       keys.ads:8:06: add "limited" to type indication
      
      ----
      with Keys;
      procedure P is
      begin
        null;
      end;
      ----
      with GNAT.Semaphores;
      package Keys is
      
        type Ref0 is limited interface;
        type Ref2 is limited interface and Ref0;
      
        type Object is new Ref2 with record
           Lock : aliased GNAT.Semaphores.Binary_Semaphore
             (True, GNAT.Semaphores.Default_Ceiling);
        end record;
      
      end;
      
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch3.adb (Is_Onown_Limited): A derived type whose parent P
      	is a derived limited record is not itself limited if P is a
      	derived limited interface.
      
      From-SVN: r264616
      Ed Schonberg committed
    • [Ada] Inlining of renamed subprogram instances in package body · 56c3e620
      This fixes a small discrepancy in the handling of renamed subprograms
      declared in a package body, between those originally a regular
      subprogram and those an instance of a generic subprogram, the latter
      being slightly hindered.
      
      The difference comes from the setting of the Is_Public flag, which was
      more conservative in the latter case because instantiations of generic
      subprograms are done in compiler-generated local packages.
      
      It is eliminated by allowing Has_Referencer to recurse into nested
      packages, but only if they are themselves not instances of generic
      packages.
      
      The compiler must now fully inline Doit_I into Doit at -O2 in:
      
      package P is
      
        generic procedure Doit_G;
      
        procedure Doit;
      end P;
      
      package body P is
      
        N : Natural := 0;
      
        procedure Doit_G is
        begin
          N := 1;
        end Doit_G;
      
        procedure Doit_I is new Doit_G;
      
        procedure Doit renames Doit_I;
      
      end P;
      
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* sem_ch7.adb (Has_Referencer): Remove Top_Level parameter and
      	add In_Nested_Instance and
      	Has_Outer_Referencer_Of_Non_Subprograms parameters.  Rename
      	Has_Non_Subprograms_Referencer variable into
      	Has_Referencer_Of_Non_Subprograms and initialize it with the new
      	third parameter.  Adjust recursive calls and to the renaming.
      	Replace test on Top_Level with test on In_Nested_Instance to
      	decide whether to clear the Is_Public flag on entities.
      	(Hide_Public_Entities): Adjust call to Has_Referencer.
      
      From-SVN: r264615
      Eric Botcazou committed
    • [Ada] Preparation for new description of interface thunks · d58008d2
      This adjusts and exposes a couple of functions of the front-end used for the
      generation of interface thunks so as to make them callable from gigi.  This
      also propagates the debug info setting from the targets to the thunks so as
      to make stepping into primitives work better in the debugger.
      
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* exp_disp.adb (Expand_Interface_Conversion): Use Present test.
      	(Expand_Interface_Thunk): Propagate debug info setting from
      	target.
      	* exp_util.ads (Find_Interface_Tag): Adjust comment.
      	* exp_util.adb (Find_Interface_Tag): Remove assertions of
      	success.
      	* sem_util.adb (Is_Variable_Size_Record): Only look at
      	components and robustify the implementation.
      	* fe.h (Find_Interface_Tag): Declare.
      	(Is_Variable_Size_Record): Likewise.
      
      From-SVN: r264614
      Eric Botcazou committed
    • [Ada] Propagate bit order and SSO from root to classwide equivalent type · 52ba224d
      2018-09-26  Thomas Quinot  <quinot@adacore.com>
      
      gcc/ada/
      
      	* exp_util.adb (Make_CW_Equivalent_Type): Propagate bit order
      	and scalar storage order from root type to classwide equivalent
      	type, to prevent rejection of the equivalent type by the
      	freezing circuitry.
      
      gcc/testsuite/
      
      	* gnat.dg/sso12.adb: New testcase.
      
      From-SVN: r264613
      Thomas Quinot committed
    • [Ada] Crash on expression functions within quantified expressions · b45a9ff3
      This patch fixes an issue whereby using a call to an expression function
      as the domain of iteration for a loop would trigger a crash due to the
      function not being frozen appropriately.
      
      2018-09-26  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* sem_ch5.adb (Analyze_Iterator_Specification): Add conditional
      	to freeze called functions within iterator specifications during
      	full analysis.
      	(Preanalyze_Range): Minor typo fix.
      
      gcc/testsuite/
      
      	* gnat.dg/expr_func8.adb: New testcase.
      
      From-SVN: r264612
      Justin Squirek committed
    • [Ada] Missing predicate check on return value · bcbe14db
      The semantics of the return statement includes an implicit conversion of
      the value to the return type of the funcction. This conversion, as
      elsewhere, entails a predicate check if the return type has a predicate
      aspect.
      
      We do not apply the check to a case expression because in the context of
      a return statement it will be expanded into a series of return
      statements, each of which will receive a predicate check.
      
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* sem_ch6.adb (Analyze_Function_Return): If the return type has
      	a dynamic_predicate, apply a Predicate_Check to the expression,
      	given that it is implicitly converted to the return type.
      	Exclude case expressions from the check, because in this context
      	the expression is expanded into individual return statements.
      
      gcc/testsuite/
      
      	* gnat.dg/predicate3.adb, gnat.dg/predicate3_pkg.ads: New
      	testcase.
      
      From-SVN: r264611
      Ed Schonberg committed
    • [Ada] ICE on array of task type with -gnatct · 4453a822
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Task_Type>: In
      	-gnatct mode, process the discriminants only for a definition.
      
      From-SVN: r264610
      Eric Botcazou committed
    • [Ada] Fix assertion failure on record subtype with -gnatRj · 81d85d4b
      The JSON output of the -gnatR machinery was choking on record subtypes
      and the change fixes this oversight.
      
      The following package must now compile properly with -gnatRj:
      
      package P is
      
        type Rec (D : Integer) is record
            C : Integer;
      
            case D is
               when 1 =>
                  S : String (1 .. 20);
               when 2 =>
                  B : Boolean;
               when others =>
                  Ch1 : Character;
                  F   : Float;
                  Ch2 : Character;
            end case;
      
         end record;
      
         subtype Rec1 is Rec (1);
      
      end P;
      
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* repinfo.adb (List_Record_Layout): Be prepared for JSON output.
      	(List_Record_Info): Use the flat representation for record
      	subtypes in the JSON format.
      
      From-SVN: r264609
      Eric Botcazou committed
    • [Ada] Regression in partial compilation of RCI units · 05a84157
      This patch fixes an issue whereby the compilation of partial sources
      (packages without bodies that require them) would not occur when said
      sources were remote call interfaces. This is required because such
      interfaces may have bodies that only exist on the server side or vice
      versa
      
      2018-09-26  Justin Squirek  <squirek@adacore.com>
      
      gcc/ada/
      
      	* lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
      	documentation and an extra conditional check for RCI units so
      	that generated ali files will list the spec only instead of a
      	body when a body is not found.
      
      From-SVN: r264608
      Justin Squirek committed
    • [Ada] Set Current_Error_Node directly · 738b83cd
      This changes gigi to set Current_Error_Node directly, which should
      result in a more robust error handling.
      
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/gigi.h (error_gnat_node): Delete.
      	* gcc-interface/trans.c (error_gnat_node): Likewise.
      	(gigi): Replace it with Current_Error_Node.
      	(gnat_to_gnu): Likewise.
      	* gcc-interface/utils.c (rest_of_subprog_body_compilation):
      	Likewise.
      	* gcc-interface/misc.c (internal_error_function): Do not set it.
      
      From-SVN: r264607
      Eric Botcazou committed
    • [Ada] Wrong handling of address clause for limited record type · 3b9d1594
      2018-09-26  Eric Botcazou  <ebotcazou@adacore.com>
      
      gcc/ada/
      
      	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Adjust
      	code retrieving the address when a clause has already been
      	processed.
      	* gcc-interface/trans.c (gnat_to_gnu)
      	<N_Attribute_Definition_Clause>: For an object with a Freeze
      	node, build a meaningful expression.
      
      gcc/testsuite/
      
      	* gnat.dg/addr12.adb, gnat.dg/addr12_a.adb,
      	gnat.dg/addr12_a.ads, gnat.dg/addr12_b.adb,
      	gnat.dg/addr12_b.ads, gnat.dg/addr12_c.ads: New testcase.
      
      From-SVN: r264606
      Eric Botcazou committed
    • [Ada] Introduce -gnatd_A to set Opt.Disable_ALI_File · 1ac984f5
      This will allow us to remove the import of flag_compare_debug in
      lib-writ.adb in a second stage.
      
      2018-09-26  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada/
      
      	* gnat1drv.adb (Adjust_Global_Switches): -gnatd_A sets
      	Opt.Disable_ALI_File.
      	* debug.adb: Update debug flags documentation.
      
      From-SVN: r264605
      Arnaud Charlet committed
    • [Ada] Disable special handling for preconditions specified by pragmas · 6d7d342a
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* contracts.adb (Analyze_Entry_Or_Subprogram_Contract): The
      	analysis of preconditions specified by pragmas (rather than
      	aspects) is not delayed, and therefore expressions functions
      	that are completions do not need special handling during
      	expansion.
      
      From-SVN: r264604
      Ed Schonberg committed
    • [Ada] Unnesting: fix handling of up level refs for entries · ef8f9700
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* exp_unst.adb: Fix handling of up level references for entries.
      
      From-SVN: r264603
      Ed Schonberg committed
    • [Ada] Fix ICE related to type freezing · 33d25517
      2018-09-26  Ed Schonberg  <schonberg@adacore.com>
      
      gcc/ada/
      
      	* contracts.adb (Expand_Subprogram_Contract,
      	Process_Preconditions_For): Apply Freeze_Expr_Types to the
      	expression for a precondition of an expression function that is
      	a completion, when the completion appears in the private part
      	and the declaration it completes is in the visible part of the
      	same package.
      	* freeze.adb (Freeze_Expr_Types): Do not establish the scope of
      	the operation if it is already installed, as will be the case
      	when called to analyze the contract oc the subprogram (which
      	happens when generating code inside the subprogram body).
      
      From-SVN: r264602
      Ed Schonberg committed
    • [Ada] SPARK: update borrowing effects for IN parameters · f0f2d1fc
      2018-09-26  Maroua Maalej  <maalej@adacore.com>
      
      gcc/ada/
      
      	* sem_spark.adb (Check_Param_In, Setup_Parameter_Or_Global):
      	Change the operation associated to assigning to an IN parameter.
      	In SPARK, IN access-to-variable is an observe operation for a
      	function, and borrow operation for a procedure.
      
      From-SVN: r264601
      Maroua Maalej committed
    • [Ada] Vxlink: minor reformatting · 98f57e4c
      2018-09-26  Arnaud Charlet  <charlet@adacore.com>
      
      gcc/ada
      
      	* vxlink.adb: Minor reformatting.
      
      From-SVN: r264600
      Arnaud Charlet committed
    • [Ada] Fix miscellaneous typos · e5d16323
      2018-09-26  Gary Dismukes  <dismukes@adacore.com>
      
      gcc/ada/
      
      	* exp_ch9.adb, layout.adb, sem_attr.adb, sem_res.adb: Fix
      	miscellaneous typos.
      
      From-SVN: r264599
      Gary Dismukes committed
    • A few places in the arm and aarch64 backends check whether an atomic operation… · 5e14418b
      A few places in the arm and aarch64 backends check whether an atomic operation needs acquire or release semantics.
      
      A few places in the arm and aarch64 backends check whether an atomic
      operation needs acquire or release semantics.
      This is generally done with a check like
      
      (is_mm_relaxed (model)
        || is_mm_consume (model)
        || is_mm_release (model))
      
      In this patch we introduce two helper functions to make things a little
      tidier.
      
      There are a few places in the arm/ backend that check whether an
      operation needs memory model semantics with an idiom that can now be
      replaced with the new aarch_mm_needs_* functions, so we make that
      replacement.
      
      There is also some backslash removal to make things a little tidier.
      
      Full bootstrap and regression test plus cross-compilation regression tests done
      on arm-none-linux-gnueabihf.
      Ok for trunk?
      
      gcc/ChangeLog:
      
      2018-09-20  Matthew Malcomson  <matthew.malcomson@arm.com>
      
      	* config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op):
      	Use new helper functions.
      	* config/arm/sync.md (atomic_load<mode>, atomic_store<mode>):
      	Use new helper functions.
      	* config/arm/aarch-common-protos.h (aarch_mm_needs_acquire,
      	aarch_mm_needs_release): New declarations.
      	* config/arm/aarch-common.c (aarch_mm_needs_acquire,
      	aarch_mm_needs_release): New.
      
      From-SVN: r264598
      Matthew Malcomson committed
    • [Ada] Vxlink: kill a CodePeer warning · 53986604
      2018-09-26  Jerome Lambourg  <lambourg@adacore.com>
      
      gcc/ada/
      
      	* vxlink.adb: Kill a CodePeer warning.
      
      From-SVN: r264597
      Jerome Lambourg committed
    • re PR c++/67656 ([concepts] matched variadics in expression constraint report as unmatched) · 9464ed97
      2018-09-26  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/67656
      	* g++.dg/concepts/pr67656.C: New.
      
      From-SVN: r264596
      Paolo Carlini committed
    • arm.c (arm_reorg): Skip Thumb reorg pass for thunks. · f29cfc6b
      	* config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks.
      	(arm32_output_mi_thunk): Deal with long calls.
      
      From-SVN: r264595
      Eric Botcazou committed
    • re PR debug/87428 ("Missed" inline instances cause bogus DWARF to be emitted) · 392047f9
      2018-09-26  Richard Biener  <rguenther@suse.de>
      
      	PR debug/87428
      	PR debug/87362
      	* tree-inline.c (expand_call_inline): When the location
      	of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION
      	or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of
      	the inserted BLOCK to make inlined_function_outer_scope_p
      	recognize it.
      	* dwarf2out.c (add_call_src_coords_attributes): Do not add
      	coords for reserved locations.
      
      From-SVN: r264594
      Richard Biener committed
    • runtime, os: fix the build on Solaris · 201054a7
          
          Reviewed-on: https://go-review.googlesource.com/137535
      
      From-SVN: r264593
      Ian Lance Taylor committed
    • Daily bump. · a1f9402e
      From-SVN: r264592
      GCC Administrator committed
  2. 25 Sep, 2018 15 commits
    • rs6000: Use set_attr_alternative in some places · 0bbadf8b
      Some code is much neater if it uses set_attr_alternative than if it
      does everything by hand.  Change some patterns to use this shorthand.
      
      
      	* config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative.
      	(*call_indirect_nonlocal_sysv<mode>): Ditto.
      	(*call_value_indirect_nonlocal_sysv<mode>): Ditto.
      	(*sibcall_nonlocal_sysv<mode>): Ditto.
      	(*sibcall_value_nonlocal_sysv<mode>): Ditto.
      	(<bd>_<mode>): Ditto.
      	(<bd>tf_<mode>): Ditto.
      
      From-SVN: r264588
      Segher Boessenkool committed
    • rs6000: Simplify "switch (which_alternative)" patterns · 07a38de7
      A few of the rs6000 patterns use C code as output control string, where
      that code is just a "switch (which_alternative)" with all alternatives
      returning a constant string or just the result of a function call as
      template.
      Write such cases as just a list of templates, with the few pieces that
      are C code preceded by "*".
      
      
      	* config/rs6000/altivec.md (*altivec_mov<mode>): Write the output
      	control string as a list of templates instead of as C code.
      	(*altivec_movti): Ditto.
      	* config/rs6000/darwin.md (movdf_low_di): Ditto.
      
      From-SVN: r264587
      Segher Boessenkool committed
    • RISC-V: Fix weak symbols with medany and explicit relocs. · ad117173
      	gcc/
      	* config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak
      	when target symbol is weak.
      
      	gcc/testsuite/
      	* gcc.target/riscv/weak-1.c: New.
      
      From-SVN: r264586
      Jim Wilson committed
    • re PR c/87387 (trunk/gcc/builtins.c:585:7: warning: -Wself-assign problem) · c7813484
      	PR c/87387
              * builtins.c (unterminated_array): Simplify.
      	* expr.c (string_constant): Handle SSA_NAME.  Add more exceptions
      	where pointer arithmetic is safe.
      
      	* gcc.dg/warn-stpcpy-no-nul.c: Drop unnecessary xfails.
      	* gcc.dg/warn-stplen-no-nul.c: Likewise.
      
      From-SVN: r264585
      Jeff Law committed
    • rs6000: Do not allow out of range immediate in vsplt[bhw] (PR86987) · a9f6e019
      The original AltiVec manuals had the immediate lane number in the
      splat instructions as a 5-bit number, but anything too big has no
      defined meaning, and gas will choke on it too.  This patch disallows
      it in the instruction patterns as well as in the builtins.  This
      solves PR86987.
      
      
      	PR target/86987
      	* config/rs6000/altivec.md (altivec_vspltb): Use
      	const_0_to_15_operand instead of u5bit_cint_operand.
      	(*altivec_vspltb_internal): Ditto.
      	(altivec_vspltb_direct): Ditto.
      	(altivec_vsplth): Use const_0_to_7_operand instead of
      	u5bit_cint_operand.
      	(*altivec_vsplth_internal): Ditto.
      	(altivec_vsplth_direct): Ditto.
      	(altivec_vspltw): Use const_0_to_3_operand instead of
      	u5bit_cint_operand.
      	(*altivec_vspltw_internal): Ditto.
      	(altivec_vspltw_direct): Ditto.
      	(altivec_vspltsf): Ditto.
      	(*altivec_vspltsf_internal): Ditto.
      	* config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the
      	various splats with the proper size immediate.  Reorder the various
      	cases by ascending size of immediate, and put all such together.
      
      From-SVN: r264584
      Segher Boessenkool committed
    • adjust dinst.adb's expectations for location views · ee850518
      The testcase failed when the compiler used .loc view syntax, because
      it expected discriminators at the end of the .loc lines.
      
      for  gcc/testsuite/ChangeLog
      
      	* gnat.dg/dinst.adb: Adjust for locviews.
      
      From-SVN: r264583
      Alexandre Oliva committed
    • altivec-6.C: Updated vec_splat() calls. · 43ab423d
      [testsuite]
      
      2018-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
      
          * g++.dg/ext/altivec-6.C: Updated vec_splat() calls.
          * gcc.target/powerpc/fold-vec-splat-char.c: Remove invalid
          vec_splat calls from recently added tests. Update instruction counts.
          * gcc.target/powerpc/fold-vec-splat-floatdouble.c: Same.
          * gcc.target/powerpc/fold-vec-splat-int.c: Same.
          * gcc.target/powerpc/fold-vec-splat-longlong.c: Same.
          * gcc.target/powerpc/fold-vec-splat-pixel.c: Same.
          * gcc.target/powerpc/fold-vec-splat-short.c: Same.
      
      From-SVN: r264582
      Will Schmidt committed
    • re PR c++/87425 (ICE with virtual assignment operator) · a5bfbcc8
      	PR c++/87425
      	* g++.dg/cpp2a/constexpr-virtual12.C: New test.
      
      From-SVN: r264581
      Marek Polacek committed
    • re PR c++/87398 (g++ ICE on valid code: tree check: expected record_type or… · 69deaf14
      re PR c++/87398 (g++ ICE on valid code: tree check: expected record_type or union_type or qual_union_type, have array_type in cxx_eval_constant_expression, at cp/constexpr.c:4820)
      
      	PR c++/87398
      	* constexpr.c (cxx_eval_constant_expression) <case OBJ_TYPE_REF>: Only
      	look through COMPONENT_REFs with DECL_FIELD_IS_BASE FIELD_DECLs.
      
      	* g++.dg/other/pr87398.C: New test.
      	* g++.dg/cpp2a/constexpr-virtual10.C: New test.
      	* g++.dg/cpp2a/constexpr-virtual11.C: New test.
      
      From-SVN: r264580
      Jakub Jelinek committed
    • [PR 87339] Fix failure of gcc.dg/warn-abs-1.c on some targets · e8753bb8
      2018-09-25  Martin Jambor  <mjambor@suse.cz>
      
      	PR testsuite/87339
      	* gcc.dg/warn-abs-1.c: Do not test _Float128.  Remove dg-skip-if and
      	float125 target.
      	* gcc.target/i386/warn-abs-3.c: New test.
      
      From-SVN: r264579
      Martin Jambor committed
    • * config/i386/i386.md: Move nearbyint patterns closer to rint. · 84848f51
      From-SVN: r264578
      Uros Bizjak committed
    • re PR c++/81246 (ICE on invalid C++ code (with a non-type template parameter… · 0ae1678f
      re PR c++/81246 (ICE on invalid C++ code (with a non-type template parameter having type 'float'): Segmentation fault)
      
      2018-09-25  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/81246
      	* g++.dg/cpp0x/pr81246.C: New.
      
      From-SVN: r264577
      Paolo Carlini committed
    • Use steady_clock to implement condition_variable::wait_for with predicate · 29b26763
      In r263225 (d2e378182a12d68fe5caeffae681252662a2fe7b), I fixed
      condition_variable::wait_for to use std::chrono::steady_clock for the wait.
      Unfortunately, I failed to spot that the same fix is required for the
      wait_for variant that takes a predicate too.
      
      2018-09-25  Mike Crowe  <mac@mcrowe.com>
      
      	* include/std/condition_variable (condition_variable::wait_for): Use
      	steady clock in overload that uses a predicate.
      
      From-SVN: r264575
      Mike Crowe committed
    • PR libstdc++/87431 optimise valueless_by_exception() · 16d30bbd
      If a std::variant can never get into valueless state then we don't need
      to do a runtime check for a valid alternative.
      
      	PR libstdc++/87431
      	* include/std/variant (_Variant_storage<true, _Types...>::_M_valid):
      	Avoid runtime test when all alternatives are scalars and so cannot
      	throw during initialization.
      
      From-SVN: r264574
      Jonathan Wakely committed
    • re PR debug/83941 (Debug info generated with -flto contains useless forwarders) · 4fb792e1
      2018-09-25  Richard Biener  <rguenther@suse.de>
      
      	PR debug/83941
      	* dwarf2out.c (add_AT_external_die_ref): Remove now redundant
      	GC-ification.
      	(maybe_create_die_with_external_ref): Do not create
      	DW_TAG_imported_unit here.
      	(add_abstract_origin_attribute): Handle external BLOCK refs.
      	(dwarf2out_abstract_function): Simplify LTO case.
      	(dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely
      	rather than using maybe_create_die_with_external_ref.
      
      From-SVN: r264573
      Richard Biener committed