فهرست منبع

* leave jvmbackend branch in a proper state (fixes from trunk merge)
--- Merging r21075 through r21076 into '.':
U Makefile.fpc
U compiler/symdef.pas
U compiler/defcmp.pas
U Makefile
--- Merging r21078 into '.':
U compiler/cfileutl.pas

git-svn-id: branches/jvmbackend@21083 -

Jonas Maebe 13 سال پیش
والد
کامیت
dc40738f09
5فایلهای تغییر یافته به همراه15 افزوده شده و 3 حذف شده
  1. 2 1
      Makefile
  2. 1 0
      Makefile.fpc
  3. 1 1
      compiler/cfileutl.pas
  4. 1 1
      compiler/defcmp.pas
  5. 10 0
      compiler/symdef.pas

+ 2 - 1
Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/25]
+# Don't edit, this file is generated by FPCMake Version 2.0.0 [2012/04/27]
 #
 default: help
 MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-haiku i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian i386-nativent i386-iphonesim m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded powerpc-wii powerpc-aix sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-netbsd x86_64-solaris x86_64-openbsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-darwin arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded powerpc64-aix avr-embedded armeb-linux armeb-embedded mips-linux mipsel-linux jvm-java jvm-android
@@ -2637,6 +2637,7 @@ ifdef IDE
 	$(MAKE) installer_all $(BUILDOPTS)
 endif
 	$(ECHOREDIR) Build > $(BUILDSTAMP)
+	$(ECHOREDIR) Build > base.$(BUILDSTAMP)
 buildbase: base.$(BUILDSTAMP)
 base.$(BUILDSTAMP):
 	$(MAKE) compiler_cycle RELEASE=1

+ 1 - 0
Makefile.fpc

@@ -264,6 +264,7 @@ ifdef IDE
         $(MAKE) installer_all $(BUILDOPTS)
 endif
         $(ECHOREDIR) Build > $(BUILDSTAMP)
+        $(ECHOREDIR) Build > base.$(BUILDSTAMP)
 
 buildbase: base.$(BUILDSTAMP)
 base.$(BUILDSTAMP):

+ 1 - 1
compiler/cfileutl.pas

@@ -1506,7 +1506,7 @@ end;
       var
         quote_script: tscripttype;
       begin
-        if not(cs_link_on_target in current_settings.globalswitches) then
+        if (cs_link_on_target in current_settings.globalswitches) then
           quote_script:=target_info.script
         else
           quote_script:=source_info.script;

+ 1 - 1
compiler/defcmp.pas

@@ -764,7 +764,7 @@ implementation
                    begin
                      { ugly, but delphi allows it }
                      if (cdo_explicit in cdoptions) and
-                        is_class_or_interface_or_objc_or_java(def_from) then
+                        is_class_or_interface_or_dispinterface_or_objc_or_java(def_from) then
                        begin
                          { in Java enums /are/ class instances, and hence such
                            typecasts must not be treated as integer-like

+ 10 - 0
compiler/symdef.pas

@@ -950,6 +950,7 @@ interface
     function is_class_or_interface(def: tdef): boolean;
     function is_class_or_interface_or_objc(def: tdef): boolean;
     function is_class_or_interface_or_objc_or_java(def: tdef): boolean;
+    function is_class_or_interface_or_dispinterface_or_objc_or_java(def: tdef): boolean;
     function is_class_or_interface_or_object(def: tdef): boolean;
     function is_class_or_interface_or_dispinterface(def: tdef): boolean;
     function is_implicit_pointer_object_type(def: tdef): boolean;
@@ -6605,6 +6606,15 @@ implementation
       end;
 
 
+    function is_class_or_interface_or_dispinterface_or_objc_or_java(def: tdef): boolean;
+      begin
+        result:=
+          assigned(def) and
+          (def.typ=objectdef) and
+          (tobjectdef(def).objecttype in [odt_class,odt_interfacecom,odt_interfacecorba,odt_dispinterface,odt_objcclass,odt_objcprotocol,odt_javaclass,odt_interfacejava]);
+      end;
+
+
     function is_class_or_interface_or_object(def: tdef): boolean;
       begin
         result:=