incremental.test 4.6 KB
# RUN: yaml2obj < %p/Inputs/export.yaml > %t.obj

# RUN: lld-link -out:%t.dll -dll %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -incremental %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=WARN-REF %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=KEEP %s

# RUN: lld-link -out:%t.dll -dll -debug %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -debug %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=KEEP %s

# RUN: lld-link -out:%t.dll -dll -debug -incremental:no %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -debug -incremental:no %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -opt:icf %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -opt:icf %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,icf %t.obj 2>&1 \
# RUN:   | FileCheck -check-prefix=WARN-ICF %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,icf %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -debug -opt:icf %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -debug -opt:icf %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -opt:ref %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -opt:ref %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -incremental -opt:ref %t.obj 2>&1 \
# RUN:   | FileCheck -check-prefix=WARN-REF %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental -opt:ref %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: touch %t.order
# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf %t.obj \
# RUN:   -order:@%t.order 2>&1 | FileCheck -check-prefix=WARN-ORDER %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf -order:@%t.order %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -opt:noref,noicf %t.obj \
# RUN:   -order:@%t.order 2>&1 | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -opt:noref,noicf -order:@%t.order %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf %t.obj \
# RUN:   -profile 2>&1 | FileCheck -check-prefix=WARN-PROFILE %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -incremental -opt:noref,noicf -profile %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -opt:noref,noicf %t.obj \
# RUN:   -profile 2>&1 | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -opt:noref,noicf -profile %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# RUN: lld-link -out:%t.dll -dll -debug -opt:ref %t.obj 2>&1 \
# RUN:   | FileCheck -allow-empty -check-prefix=NOWARN %s
# RUN: touch -t 198002011200.00 %t.lib
# RUN: lld-link -out:%t.dll -dll -debug -opt:ref %t.obj
# RUN: ls -l %t.lib | FileCheck -check-prefix=NOKEEP %s

# NOWARN-NOT: ignoring '/incremental'
# WARN-ICF: ignoring '/incremental' because ICF is enabled; use '/opt:noicf' to disable
# WARN-REF: ignoring '/incremental' because REF is enabled; use '/opt:noref' to disable
# WARN-ORDER: ignoring '/incremental' due to '/order' specification
# WARN-PROFILE: ignoring '/incremental' due to '/profile' specification
# KEEP: {{Feb 1 1980|1980-02-01}}
# NOKEEP-NOT: {{Feb 1 1980|1980-02-01}}